川のブログ

川の適当気ままなブログです。 

AOJ 0514 Quality CheckingQuality Checking

こんにちは川です。

今回は、正常に動いたものを先に判定し、

動かなかったものをあとから判定すればいけます。

 

ソースコード

 

#include <bits/stdc++.h>
using namespace std;
int main() {
    int a,b,c;
    while(cin>>a>>b>>c,a,b,c){
        int tool[301]={};
        for(int i=1;i<=a+b+c;i++)tool[i]=2;
        int n;
        cin>>n;
        int num[1001][4];
        for(int i=0;i<n;i++){
            for(int j=0;j<4;j++)cin>>num[i][j];
            if(num[i][3]==1)for(int j=0;j<3;j++)tool[num[i][j]]=1;
        }
        for(int i=0;i<n;i++){
            if(num[i][3]==0){
                int x=num[i][0],y=num[i][1],z=num[i][2];
                if(tool[x]==1&&tool[y]==1)tool[z]=0;
                else if(tool[x]==1&&tool[z]==1)tool[y]=0;
                else if(tool[y]==1&&tool[z]==1)tool[x]=0;
            }
        }
        for(int i=1;i<=a+b+c;i++)cout<<tool[i]<<endl;
    }
}