| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
求助啊,怎么还wa啊!!!哪位给些测试数据吧,能想到的都对了啊!!#include<iostream>
#include<string>
#include<algorithm>
#define Nm(x) x-65
using namespace std;
int main(){
int flag[12]={1,1,1,1,1,1,1,1,1,1,1,1},n,i,j,k,uneven=0;
string left[3],right[3],state[3],le,ri;
char ans;
cin>>n;
for(;n>0;n--,uneven=0,ri.erase(),le.erase()){
for(i=0;i<3;i++){
cin>>left[i]>>right[i]>>state[i];
}
for(j=0;j<3;j++){
switch(state[j][0]){
case 'e': if(left[j]==right[j])break;//if both sides are the same, jump it
for(k=0;k<left[j].size();k++){//if not, exclude the chars
flag[ Nm(left[j][k]) ]=0;
flag[ Nm(right[j][k]) ]=0;
}
break;
case 'u': le+=left[j];
ri+=right[j];
uneven++;
break;
case 'd': le+=right[j];//put it in another way for convience
ri+=left[j];
uneven++;
}
}
for(i=0;i<le.size();i++){//get the unequal string dealt with
flag[ Nm(le[i]) ]=2;
flag[ Nm(ri[i]) ]=2;
if(count(le.begin(),le.end(),le[i])!=uneven){
flag[ Nm(le[i]) ]=0;
}
if(count(ri.begin(),ri.end(),ri[i])!=uneven){
flag[ Nm(ri[i]) ]=0;
}
}
for(j=0;j<12;j++){//get the answer and reinitailize flag
if(flag[j]==2){
ans=j+65;
break;
}
flag[j]=1;
}
cout<<ans<<" is the counterfeit coin and it is "<<(count(le.begin(),le.end(),ans)?"heavy.\n":"light.\n");
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator