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 <stdio.h> void quick_sort(long *x, int low, int high) { int i, j; long t; i = low; j = high; t = *(x+low); while (i<j) { while (i<j && *(x+j)>t) { j--; } if (i<j) { *(x+i) = *(x+j); i++; } while (i<j && *(x+i)<=t) { i++; } if (i<j) { *(x+j) = *(x+i); j--; } *(x+i) = t; quick_sort(x,low,i-1); quick_sort(x,i+1,high); } } main() { long a[100000];char c; int i, j, n; scanf("%d", &n); for (i = 0; i < n; i++) { a[i] = 0L; for (j = 0; j < 7; j++) { scanf("%c", &c); switch (c) { case 'A': case 'B': case 'C': case '2': a[i] = a[i] * 10L + 2L; break; case 'D': case 'E': case 'F': case '3': a[i] = a[i] * 10L + 3L; break; case 'G': case 'H': case 'I': case '4': a[i] = a[i] * 10L + 4L; break; case 'J': case 'K': case 'L': case '5': a[i] = a[i] * 10L + 5L; break; case 'M': case 'N': case 'O': case '6': a[i] = a[i] * 10L + 6L; break; case 'P': case 'R': case 'S': case '7': a[i] = a[i] * 10L + 7L; break; case 'T': case 'U': case 'V': case '8': a[i] = a[i] * 10L + 8L; break; case 'W': case 'X': case 'Y': case '9': a[i] = a[i] * 10L + 9L; break; case '1': a[i] = a[i] * 10L + 1L; break; case '0': a[i] *= 10L; break; default: j--; } } } quick_sort(a, 0, n - 1); c = 1; for (i = 0; i < n - 1; ) { for (j = i + 1; j < n && a[j] == a[i];j++) ; if (j > i + 1) {printf("%03ld-%04ld %d\n", a[i]/10000L,a[i]%10000L,j - i); c = 0;} i = j; } if (c) 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