2011年2月22日火曜日

Aizu Online Judge 0176 What Color?

■0176 What Color?

やるだけ.

  1. import java.util.*;  
  2. import java.lang.*;  
  3. import java.math.*;  
  4. import java.io.*;  
  5.   
  6. import static java.lang.Math.*;  
  7. import static java.util.Arrays.*;  
  8.   
  9. public class Main{  
  10.   
  11.  Scanner sc=new Scanner(System.in);  
  12.   
  13.  int INF=1<<28;  
  14.  double EPS=1e-9;  
  15.   
  16.  void run(){  
  17.   for(;;){  
  18.    String s=sc.next();  
  19.    if(s.equals("0")){  
  20.     break;  
  21.    }  
  22.    int r=Integer.parseInt(s.substring(13), 16);  
  23.    int g=Integer.parseInt(s.substring(35), 16);  
  24.    int b=Integer.parseInt(s.substring(57), 16);  
  25.    int k=-1;  
  26.    double min=INF;  
  27.    for(int i=0; i<8; i++){  
  28.     int dr=r-(i/4)*0xff;  
  29.     int dg=g-((i/2)%2)*0xff;  
  30.     int db=b-(i%2)*0xff;  
  31.     double d=Math.sqrt(dr*dr+dg*dg+db*db);  
  32.     if(d+EPS<min){  
  33.      k=i;  
  34.      min=d;  
  35.     }  
  36.    }  
  37.    println(new String[]{"black""blue""lime""aqua""red",  
  38.      "fuchsia""yellow""white",}[k]);  
  39.   }  
  40.  }  
  41.   
  42.  void debug(Object... os){  
  43.   System.err.println(Arrays.deepToString(os));  
  44.  }  
  45.   
  46.  void print(String s){  
  47.   System.out.print(s);  
  48.  }  
  49.   
  50.  void println(String s){  
  51.   System.out.println(s);  
  52.  }  
  53.   
  54.  public static void main(String[] args){  
  55.   // System.setOut(new PrintStream(new BufferedOutputStream(System.out)));  
  56.   new Main().run();  
  57.  }  
  58. }  

0 件のコメント: