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 |
Confused!#define A(k) p[i].string[k] #include "string.h" #include "malloc.h" #include "stdio.h" struct num { char string[20]; int dt; int flag; }; int main() { int n,i,j,k,*q,v,total; struct num *p; scanf("%d",&n);total=n; p=(struct num *)calloc(n,sizeof(struct num)); for(i=0;i<n;i++) { scanf("%s",p[i].string); for(j=0,k=0;A(j)!='\0';j++,k++) if(A(j)>47&&A(j)<58)A(k)=A(j); else switch(A(j)) {case 'A':A(k)='2';break; case 'B':A(k)='2';break; case 'C':A(k)='2';break; case 'D':A(k)='3';break; case 'E':A(k)='3';break; case 'F':A(k)='3';break; case 'G':A(k)='4';break; case 'H':A(k)='4';break; case 'I':A(k)='4';break; case 'J':A(k)='5';break; case 'K':A(k)='5';break; case 'L':A(k)='5';break; case 'M':A(k)='6';break; case 'N':A(k)='6';break; case 'O':A(k)='6';break; case 'P':A(k)='7';break; case 'R':A(k)='7';break; case 'S':A(k)='7';break; case 'T':A(k)='8';break; case 'U':A(k)='8';break; case 'V':A(k)='8';break; case 'W':A(k)='9';break; case 'X':A(k)='9';break; case 'Y':A(k)='9';break; default:k--; } A(k)='\0'; p[i].dt=1; p[i].flag=1;} for(i=0;i<n-1;i++) if(p[i].flag) for(j=i+1;j<n;j++) if(!strcmp(p[i].string,p[j].string)&&p[j].flag) { p[i].dt++; p[j].flag=0; total--; } if(total-n) { q=(int *)calloc(total,sizeof(int)); j=0; for(i=0;i<n;i++) if(p[i].dt-1){q[j]=i;j++;} for(i=0;i<j-1;i++) for(k=i+1;k<j;k++) if(strcmp(p[q[i]].string,p[q[k]].string)>0) {v=q[i];q[i]=q[k];q[k]=v;} for(i=0;i<j;i++) { for(k=0;k<3;k++)printf("%c",p[q[i]].string[k]); printf("-"); for(k=3;k<7;k++)printf("%c",p[q[i]].string[k]); printf(" %d\n",p[q[i]].dt); } } else printf("No duplicates.\n"); return 0; } 为什么TLE啊?我觉得不到2秒啊? Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator