| ||||||||||
| 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 | |||||||||
TLE,请大家看下,哪儿慢下来的,一直超时。谢谢#include <stdio.h>
#include <string.h>
char str[100000][100], s[100];
int main()
{
int n, i, j, k, r, a[50000], count, flag=1;
char ch;
while(scanf("%d",&n)==1)
{
i=0;
count=0;
getchar();
while(i<n)
{
j=0;
while(1)
{
if(j==3)
{
s[j]='-';
j++;
}
ch=getchar();
if(ch>='A'&&ch<='Y')
{
if(ch<='P')
ch=50+(ch-'A')/3;
else if(ch=='R'||ch=='S')
ch='7';
else if(ch=='T'||ch=='U'||ch=='V')
ch='8';
else
ch='9';
}
else if(ch=='-')
{
continue;
}
else if(ch==10)
{
break;
}
s[j]=ch;
j++;
}
s[8]='\0';
if(count)
{
for(k=0; k<count; k++)
{
int t=strcmp(str[k], s);
if(t==0)
{
a[k]++;
break;
}
else if(t>0)
{
r=count;
while(r>k)
{
strcpy(str[r], str[r-1]);
a[r]=a[r-1];
r--;
}
strcpy(str[k], s);
a[k]=1;
count++;
break;
}
else
{
if(k==count-1)
{
strcpy(str[count], s);
a[count]=1;
count++;
break;
}
}
}
}
else
{
strcpy(str[0], s);
a[0]=1;
count++;
}
i++;
}
for(k=0; k<count; k++)
{
if(a[k]>1)
{
printf("%s %d\n", str[k], a[k]);
flag=0;
}
}
if(flag)
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