■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 件のコメント:
コメントを投稿