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.h> using namespace std; typedef struct { char a[14]; char b[7]; char record[5]; }Dollor; //求绝对值 int positive(int n) { if(n>=0) return n; else return n*(-1); } int main() { Dollor D[3]; int dollor[13]={0}; int i,j,n; cin>>n; while(n--) { for(i=0;i<3;i++) { cin>>D[i].a>>D[i].b>>D[i].record; for(j=0;j<strlen(D[i].a);j++) { if(strcmp(D[i].record,"even")==0) { dollor[D[i].a[j]-'A']=13; dollor[D[i].b[j]-'A']=13;//不一定是13,任意定,只要最后能和非even中的值区分开就行,因此可大一些 } if(strcmp(D[i].record,"up")==0) { dollor[D[i].a[j]-'A']++; dollor[D[i].b[j]-'A']--; } if(strcmp(D[i].record,"down")==0) { dollor[D[i].a[j]-'A']--; dollor[D[i].b[j]-'A']++; } } } int max=0; char x; for(i=0;i<12;i++) { if(dollor[i]<10) { if(positive(dollor[i])>=positive(max)) { max=dollor[i]; x='A'+i; } } } if(max<0) cout<<x<<" is the counterfeit coin and it is light.\n"; else cout<<x<<" is the counterfeit coin and it is heavy.\n"; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator