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; } } }