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 |
求大神指点,不知道错在哪里,样例测试没错#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct number { char s[1000]; int times; int num; }present[100000]; char suit[26]={'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9'}; char result[1000]={0}; bool cmp(struct number a,struct number b) { for(int i=0;i<strlen(a.s);i++) { if(a.s[i]!=b.s[i]) return a.s[i]<b.s[i]; } return a.num<b.num; } int main() { int n,i,j,k,flag; char ts[1000]={0}; cin>>n; fflush(stdin); k=0; while(n--) { i=0; gets(ts); for(j=0;j<strlen(ts);j++) { if('A'<=ts[j]&&ts[j]<'Z') result[i++]=suit[ts[j]-'A']; else if('0'<=ts[j]&&ts[j]<='9') result[i++]=ts[j]; if(i==3) result[i++]='-'; } //printf("%s\n",result); flag=0; for(j=0;j<k;j++) { if(strcmp(result,present[j].s)==0) { present[j].times++; flag=1; break; } } if(!flag) { strcpy(present[k].s,result); present[k].times=1; present[k].num=k; k++; } } sort(present,present+k+1,cmp); for(i=0;i<k;i++) if(present[i].times>=2) printf("%s %d\n",present[i].s,present[i].times); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator