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 |
Re:我的解答250MSIn Reply To:我的解答250MS Posted by:yubo555123 at 2010-07-26 22:31:10 > #include <stdio.h> > #include <algorithm> > using namespace std; > int main() > { > int n; > char s[80]; > int a[100000]; > int i,k; > int c = 0; > int f,g=1; > > scanf("%d", &n); > getchar(); > for(k=0; k<n; ++k) > { > int u = 0; > int f = 0; > > gets(s); > for (i=0; s[i]!='\0'; ++i) > { > switch (s[i]) 把这个switch改为直接映射,会更快。 static char maps[] = " " "2223334445556667777888999"; a[k] = maps[s[i]]; > { > case 'A': > case 'B': > case 'C': > u = u*10+2; > break; > case 'D': > case 'E': > case 'F': > u = u*10+3; > break; > case 'G': > case 'H': > case 'I': > u = u*10+4; > break; > case 'J': > case 'K': > case 'L': > u = u*10+5; > break; > case 'M': > case 'N': > case 'O': > u = u*10+6; > break; > case 'P': > case 'R': > case 'S': > u = u*10+7; > break; > case 'T': > case 'U': > case 'V': > u = u*10+8; > break; > case 'W': > case 'X': > case 'Y': > u = u*10+9; > break; > default: > if (s[i]>='0' && s[i]<='9') > u = u*10+s[i]-48; > } > } > > a[k] = u; > } > > sort(a, a+n); > f = a[0]; > for (i=1; i<n; ++i) > { > if (a[i] == f) > ++g; > else > { > if (g != 1) > { > printf("%03d-%04d %d", f/10000, f%10000, g); > printf("\n"); > c = 1; > } > f = a[i]; > g = 1; > } > } > > if (g != 1) > { > printf("%03d-%04d %d", f/10000, f%10000, g); > c = 1; > } > > if (!c) > printf("No duplicates.\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