■0514 Quality Checking
合格
→3つ共正常
失敗
→2つが正常なら残り1つが失敗
- import java.util.*;
- import java.lang.*;
- import java.math.*;
- import java.io.*;
- import static java.lang.Math.*;
- import static java.util.Arrays.*;
- public class Main{
- Scanner sc=new Scanner(System.in);
- int INF=1<<28;
- double EPS=1e-9;
- void run(){
- for(;;){
- int na, nb, nc;
- na=sc.nextInt();
- nb=sc.nextInt();
- nc=sc.nextInt();
- if((na|nb|nc)==0){
- break;
- }
- int n=sc.nextInt();
- int[] as=new int[na];
- int[] bs=new int[nb];
- int[] cs=new int[nc];
- Arrays.fill(as, 2);
- Arrays.fill(bs, 2);
- Arrays.fill(cs, 2);
- R[] rs=new R[n];
- for(int i=0; i<n; i++){
- int a=sc.nextInt()-1;
- int b=sc.nextInt()-na-1;
- int c=sc.nextInt()-na-nb-1;
- int r=sc.nextInt();
- rs[i]=new R(a, b, c, r);
- if(r==1){
- as[a]=1;
- bs[b]=1;
- cs[c]=1;
- }
- }
- for(int i=0; i<n; i++){
- if(rs[i].r==0){
- int a=as[rs[i].a];
- int b=bs[rs[i].b];
- int c=cs[rs[i].c];
- if(a==1&&b==1){
- c=0;
- }else if(b==1&&c==1){
- a=0;
- }else if(c==1&&a==1){
- b=0;
- }
- as[rs[i].a]=a;
- bs[rs[i].b]=b;
- cs[rs[i].c]=c;
- }
- }
- for(int i=0; i<na; i++){
- println(as[i]+"");
- }
- for(int i=0; i<nb; i++){
- println(bs[i]+"");
- }
- for(int i=0; i<nc; i++){
- println(cs[i]+"");
- }
- }
- }
- class R{
- int a, b, c, r;
- R(int a, int b, int c, int r){
- this.a=a;
- this.b=b;
- this.c=c;
- this.r=r;
- }
- }
- void debug(Object... os){
- System.err.println(Arrays.deepToString(os));
- }
- void print(String s){
- System.out.print(s);
- }
- void println(String s){
- System.out.println(s);
- }
- public static void main(String[] args){
- // System.setOut(new PrintStream(new BufferedOutputStream(System.out)));
- new Main().run();
- }
- }
0 件のコメント:
コメントを投稿