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 |
打错In Reply To:为什么总是超时的呢? Posted by:pq at 2006-03-20 16:39:33 #include <stdio.h> #include <stdlib.h> #include <string.h> #define maxn 100002 int map[] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,0,7,7,8,8,8,9,9,9,0}; int cp(const void *a,const void *b) { return(*(long*)a>*(long*)b?1:-1); } void main() {char b[100]; long a[maxn],i,j,l,num,ok=0,n=-1,c; scanf("%ld",&num); for (n=0;n<num;n++) { scanf("%s",b); l=strlen(b); j=-1; for (i=0; i<l;i++) if ((b[i]>='0')&&(b[i]<='9')) {j++; b[j]=b[i];} else if ((b[i]>='A')&&(b[i]<='Z')) {j++; b[j]='0'+map[b[i]-'A'];} b[7]='\0'; a[n]=atol(b); } a[num]=10000000; qsort(a,num,sizeof(a[0]),cp); j=0; ok=0; for (i=0; i<num;) {c=1; for (j=i+1; a[i]==a[j]&&j<num;j++) c++; if (c>1) {printf("%.3ld-%.4ld %ld\n",a[i]/10000,a[i]%10000,j-i); ok=1;} i=j; } if (!ok) printf("No duplicates.\n"); } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator