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 |
1 A J up B J up C J up, 答案一目了然吧In Reply To:路过的给看一下 Posted by:lzu311 at 2006-05-18 08:44:41 推理很容易出错,太容易漏点什么了 觉得枚举是个不错的办法:) > #include<stdio.h> > #include<string.h> > void main() > { > int i,n,j,k; > char s1[10],s2[10],s3[10]; > int s[20]; > scanf("%d",&n); > for(i=1;i<=n;i++) > { > memset(s,0,sizeof(s)); > for(j=1;j<=3;j++) > { > scanf("%s%s%s",s1,s2,s3); > if(strcmp(s3,"even")==0)//如果even,置为1,其为真币 > { > for(k=0;s1[k]!=0;k++) > { > s[s1[k]-'A']=1; > s[s2[k]-'A']=1; > } > } > if(strcmp(s3,"up")==0) > { > for(k=0;s1[k]!=0;k++) > { > if(s[s2[k]-'A']!=1) > { > if(s[s2[k]-'A']==2)//存在矛盾,为真币 > s[s2[k]-'A']=1; > else > s[s2[k]-'A']=-1;//-1标识假币为light > } > if(s[s1[k]-'A']!=1) > { > if(s[s1[k]-'A']==-1) > s[s1[k]-'A']=1; > else > s[s1[k]-'A']=2;//2标识假币为heavy > } > > } > } > if(strcmp(s3,"down")==0) > { > for(k=0;s2[k]!=0;k++) > { > if(s[s2[k]-'A']!=1) > { > if(s[s2[k]-'A']==-1) > s[s2[k]-'A']=1; > else > s[s2[k]-'A']=2; > } > if(s[s1[k]-'A']!=1) > { > if(s[s1[k]-'A']==2) > s[s1[k]-'A']=1; > else > s[s1[k]-'A']=-1; > } > } > } > } > for(j=0;j<20;j++) > { > if(s[j]==-1) > { > printf("%c is the counterfeit coin and it is light.\n",j+'A'); > break; > } > if(s[j]==2) > { > printf("%c is the counterfeit coin and it is heavy.\n",j+'A'); > break; > } > } > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator