| ||||||||||
| 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:各位帮忙看看啊!In Reply To:各位帮忙看看啊! Posted by:eulerray at 2007-06-02 13:48:14 为什么WA啊?
#include<stdio.h>
#include<string.h>
void main()
{
int i,n,j,k,d[60000];
char s[100]={0};
long tran (char a[]);
long c[120000],e[60000],temp,flag;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%s",s);
c[i]=tran(s);
memset(s,0,sizeof(s));
}
for(i=1;i<n;i++)
for(j=1;j<=n-i;j++)
if(c[j]>c[j+1]){
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}
for(i=1;i<=20;i++)
d[i]=1;
i=1; k=1;
while(1){
if(i>n) break;
flag=c[i];
i=i+1;
while(flag==c[i]){
i++;
d[k]++;
}
if(d[k]>1){
e[k]=flag;
k=k+1;
}
}
if(d[1]==1)
printf("No duplicates.\n");
else {
for(j=1;j<k;j++)
printf("%03d-%04d %d\n",e[j]/10000,e[j]%10000,d[j]);
}
}
long tran(char a[])
{
int i=0,b[7],j;
long sum;
for(j=0;j<strlen(a);j++){
if (a[j]>='0'&&a[j]<='9')
{ b[i]=a[j]-'0';
i++;}
if (a[j]>='A'&&a[j]<='P')
{ b[i]=(a[j]-'A')/3+2;
i++;}
if (a[j]>='R'&&a[j]<='Y')
{ b[i]=(a[j]-'A'-1)/3+2;
i++;}
}
sum=b[0]*1000000+b[1]*100000+b[2]*10000+b[3]*1000+b[4]*100+b[5]*10+b[5];
return sum;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator