2011年2月24日木曜日

Aizu Online Judge 0183 Black-and-White

■0183 Black-and-White

やるだけ.

  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.  int[][] a;  
  17.  int n;  
  18.   
  19.  void run(){  
  20.   n=3;  
  21.   for(;;){  
  22.    a=new int[n][n];  
  23.    for(int j=0; j<n; j++){  
  24.     String s=sc.next();  
  25.     if(s.equals("0")){  
  26.      return;  
  27.     }  
  28.     for(int i=0; i<n; i++){  
  29.      switch(s.charAt(i)){  
  30.      case 'b':  
  31.       a[j][i]=0;  
  32.       break;  
  33.      case 'w':  
  34.       a[j][i]=1;  
  35.       break;  
  36.      case '+':  
  37.       a[j][i]=-1;  
  38.       break;  
  39.      }  
  40.     }  
  41.    }  
  42.    solve();  
  43.   }  
  44.  }  
  45.   
  46.  void solve(){  
  47.   if(check(0)){  
  48.    println("b");  
  49.   }else if(check(1)){  
  50.    println("w");  
  51.   }else{  
  52.    println("NA");  
  53.   }  
  54.  }  
  55.   
  56.  boolean check(int e){  
  57.   boolean f=false;  
  58.   for(int j=0; j<n; j++){  
  59.    boolean f1=true, f2=true;  
  60.    for(int i=0; i<n; i++){  
  61.     f1&=a[j][i]==e;  
  62.     f2&=a[i][j]==e;  
  63.    }  
  64.    f|=f1|f2;  
  65.   }  
  66.   boolean f1=true, f2=true;  
  67.   for(int i=0; i<n; i++){  
  68.    f1&=a[i][i]==e;  
  69.    f2&=a[i][n-1-i]==e;  
  70.   }  
  71.   return f|f1|f2;  
  72.  }  
  73.   
  74.  void debug(Object... os){  
  75.   System.err.println(Arrays.deepToString(os));  
  76.  }  
  77.   
  78.  void print(String s){  
  79.   System.out.print(s);  
  80.  }  
  81.   
  82.  void println(String s){  
  83.   System.out.println(s);  
  84.  }  
  85.   
  86.  public static void main(String[] args){  
  87.   // System.setOut(new PrintStream(new BufferedOutputStream(System.out)));  
  88.   new Main().run();  
  89.  }  
  90. }  

0 件のコメント: