2011年3月25日金曜日

Aizu Online Judge 0514 Quality Checking

■0514 Quality Checking

合格
→3つ共正常
失敗
→2つが正常なら残り1つが失敗
  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.    int na, nb, nc;  
  19.    na=sc.nextInt();  
  20.    nb=sc.nextInt();  
  21.    nc=sc.nextInt();  
  22.    if((na|nb|nc)==0){  
  23.     break;  
  24.    }  
  25.   
  26.    int n=sc.nextInt();  
  27.    int[] as=new int[na];  
  28.    int[] bs=new int[nb];  
  29.    int[] cs=new int[nc];  
  30.    Arrays.fill(as, 2);  
  31.    Arrays.fill(bs, 2);  
  32.    Arrays.fill(cs, 2);  
  33.   
  34.    R[] rs=new R[n];  
  35.    for(int i=0; i<n; i++){  
  36.     int a=sc.nextInt()-1;  
  37.     int b=sc.nextInt()-na-1;  
  38.     int c=sc.nextInt()-na-nb-1;  
  39.     int r=sc.nextInt();  
  40.     rs[i]=new R(a, b, c, r);  
  41.     if(r==1){  
  42.      as[a]=1;  
  43.      bs[b]=1;  
  44.      cs[c]=1;  
  45.     }  
  46.    }  
  47.   
  48.    for(int i=0; i<n; i++){  
  49.     if(rs[i].r==0){  
  50.      int a=as[rs[i].a];  
  51.      int b=bs[rs[i].b];  
  52.      int c=cs[rs[i].c];  
  53.      if(a==1&&b==1){  
  54.       c=0;  
  55.      }else if(b==1&&c==1){  
  56.       a=0;  
  57.      }else if(c==1&&a==1){  
  58.       b=0;  
  59.      }  
  60.      as[rs[i].a]=a;  
  61.      bs[rs[i].b]=b;  
  62.      cs[rs[i].c]=c;  
  63.     }  
  64.    }  
  65.    for(int i=0; i<na; i++){  
  66.     println(as[i]+"");  
  67.    }  
  68.    for(int i=0; i<nb; i++){  
  69.     println(bs[i]+"");  
  70.    }  
  71.    for(int i=0; i<nc; i++){  
  72.     println(cs[i]+"");  
  73.    }  
  74.   }  
  75.  }  
  76.   
  77.  class R{  
  78.   int a, b, c, r;  
  79.   
  80.   R(int a, int b, int c, int r){  
  81.    this.a=a;  
  82.    this.b=b;  
  83.    this.c=c;  
  84.    this.r=r;  
  85.   }  
  86.  }  
  87.   
  88.  void debug(Object... os){  
  89.   System.err.println(Arrays.deepToString(os));  
  90.  }  
  91.   
  92.  void print(String s){  
  93.   System.out.print(s);  
  94.  }  
  95.   
  96.  void println(String s){  
  97.   System.out.println(s);  
  98.  }  
  99.   
  100.  public static void main(String[] args){  
  101.   // System.setOut(new PrintStream(new BufferedOutputStream(System.out)));  
  102.   new Main().run();  
  103.  }  
  104. }  

0 件のコメント: