PKU 1013 Counterfeit Dollar
http://poj.org/problem?id=1013
重さを測った結果から重さの違うものと、それが軽いのか重いのか当てるという問題。
添字ミス、スペルミス、考え不足でいろいろとWAった。
ひどい。
string a[3],b[3],c[3]; main(){ int n; cin>>n; while(n--){ rep(i,3)cin>>a[i]>>b[i]>>c[i]; char ans; string out; for(int i='A';i<='L';i++){ rep(j,2){ bool ok=true; rep(k,3){ bool app=false; rep(l,SZ(a[k])){ if(a[k][l]==i){ app=true; if(j==0 && c[k][0]!='d')ok=false; else if(j==1 && c[k][0]!='u')ok=false; }else if(b[k][l]==i){ app=true; if(j==0 && c[k][0]!='u')ok=false; else if(j==1 && c[k][0]!='d')ok=false; } } if(!app && c[k][0]!='e')ok=false; if(app && c[k][0]=='e')ok=false; } if(ok){ out=j?"heavy.":"light."; ans=i; break; } } if(SZ(out))break; } cout<<ans<<" is the counterfeit coin and it is "<<out<<endl; } }