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 |
为什么问题WA……我的代码: /* PKU 1002 487-3279 By Bighead8116 Time : July 31st 2003 Quick Sort */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<assert.h> /*#define DEBUG*/ #define MAXN 100000 #define MAXLEN 1000 const int chars[26]={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}; long *datas; void read_in_data(FILE*,long); int cmp_func(const void *,const void *); void print_out(long sum); main() { long n; FILE *fi,*fo; #ifdef DEBUG fi=fopen("input.txt","r"); assert(fi!=NULL); #else fi=stdin; #endif fscanf(fi,"%ld",&n); assert(n<=MAXN); datas=(long *)calloc(n,sizeof(long)); read_in_data(fi,n); qsort(datas,n,sizeof(long),cmp_func); print_out(n); free(datas); #ifdef DEBUG fclose(fi); #endif return 0; } void read_in_data(FILE *fin,long sum) { char tmp[MAXLEN]; long i,j,rst; for(i=0;i<sum;i++){ fscanf(fin,"%s",tmp); rst=0; for(j=0;j<strlen(tmp);j++){ if((tmp[j]>='A') && (tmp[j]<='Z')) rst=rst*10+chars[tmp[j]-'A']; else if((tmp[j]>='0') && (tmp[j]<='9')) rst=rst*10+tmp[j]-'0'; } *(datas+i)=rst; } } int cmp_func(const void *a,const void *b) { long *x=(long *)a; long *y=(long *)b; if(*x==*y) return 0; if(*x>*y) return 1; return -1; } void print_out(long sum) { long i,j; int have=0; for(i=0;i<sum;){ j=i+1; while((datas[i]==datas[j]) && (j<sum)) j++; if(j-i>1){ have=1; printf("%ld-%ld %ld\n",datas[i]/10000,datas[i]%10000,j-i); } i=j; } if(!have) printf("No duplicates.\n"); } 我是快排的,自己弄的数据好好的,为什么…… WA了N次了,我快疯了…… 大哥大姐们,帮忙啊 有测试数据的话COPY一份给我好不好啊 如果没有数据,那告诉我一下你们的解题思路也是可以的呀 这厢有礼了 Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator