AOJ 0514 - Quality Checking

通電するとき,電源,モーター,ケーブル全てが正常
通電しないときは,3つの部品のうち2つが正常だとわかっていれば,残る1つが異常.
ある2つが正常/異常だとわからなければ,何もわからない.

なお,順序によって評価が確定できないことがあるので,n*n回廻している.

#include<iostream>

int main(){
	int parts[301], a, b, c;
	while(std::cin >> a >> b >> c, a){
		for(int i=0;i<301;i++){
			parts[i] = 2;//未確定
		}

		int n, list[1000][4];
		std::cin >> n;
		for(int i=0;i<n;i++){
			for(int j=0;j<4;j++)std::cin >> list[i][j];
		}

		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(list[j][3] == 1){
					for(int k=0;k<3;k++)parts[list[j][k]] = 1;
				}else{
					for(int k=0;k<3;k++){
						if(parts[list[j][k]] == 1 && parts[list[j][(k+1)%3]] == 1){
							parts[list[j][(k+2)%3]] = 0;
						}
					}
				}
			}
		}

		for(int i=1;i<=a+b+c;i++){
			std::cout << parts[i] << std::endl;
		}
	}
}