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:除排序外和C0400004079写的一样,为什么wrong answer?救命啊!!!!!In Reply To:除排序外和C0400004079写的一样,为什么wrong answer?救命啊!!!!! Posted by:glaver at 2004-04-03 23:13:28 > #include <stdio.h> > #include <stdlib.h> > > main() > { > long count; > long i,j,k,ir,first; > long num[100002]; > char tmp[200]; > scanf("%ld",&count); > for(i=1;i<=count;i++) > { > scanf("%s",tmp); > for(j=0,k=0;tmp[j]!='\0';j++,k++) > { > if(tmp[j]>='A'&&tmp[j]<='P') tmp[j]=(char)((tmp[j]-'A')/3)+'2'; > if(tmp[j]>='R'&&tmp[j]<='Y') tmp[j]=(char)((tmp[j]-'Q')/3)+'7'; > tmp[k]=tmp[j]; > if(tmp[k]=='-') k--; > } > tmp[k]='.'; > num[i]=atol(tmp); > } > > k=count/2+1; //堆排序 > ir=count; > while(1) > { > if(k>1) k--,first=num[k]; > else { > first=num[ir]; > num[ir]=num[1]; > ir--; > if(ir<=1) break; > } > i=k; > j=k+k; > while(j<=ir) > { > if(j<ir&&num[j]<num[j+1]) j++; > if(first<num[j]) > { > num[i]=num[j]; > i=j; > j=j+j; > } > else j=ir+1; > } > num[i]=first; > } > num[1]=first; > > > ir=0; //输出 > for(i=1,j=1;i<count;i++) > { > if(num[i]==num[i+1]) j++; > if(num[i]!=num[i+1]||i==count-1) > { > if(j>1){ > sprintf(tmp,"%07ld",num[i-1]); > for(k=0;k<7;k++) > { > if(k==3) printf("-"); > printf("%c",tmp[k]); > } > printf(" %ld",j); > printf("\n"); > j=1; > ir=1; > } > } > } > > if(ir==0) 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