| ||||||||||
| 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<iostream>
using namespace std;
struct STRING
{
char word[50];
char Prefixes[50];
};
int main()
{
STRING str[1000];
int stn[1000];
int i,j,k;
i=0;
while(scanf("%s",str[i].word)!=EOF)
{
str[i].Prefixes[0]='\0';
for(j=i;j>0;j--)
{
if(strcmp(str[stn[j-1]].word,str[i].word)==-1)
{
break;
}
else
{
stn[j]=stn[j-1];
}
}
stn[j]=i;
i++;
}
int l1,l2,m,n,l;
str[0].Prefixes[0]=str[0].word[0];
str[0].Prefixes[1]='\0';
for(j=0;j<i-1;j++)
{
m=stn[j];
n=stn[j+1];
l=strlen(str[m].Prefixes);
l1=strlen(str[m].word);
l2=strlen(str[n].word);
for(k=0;k<=l1 && k<=l2;k++)
{
if(str[m].word[k]==str[n].word[k])
{
str[m].Prefixes[k]=str[m].word[k];
str[n].Prefixes[k]=str[n].word[k];
}
else
{
str[m].Prefixes[k]=str[m].word[k];
str[n].Prefixes[k]=str[n].word[k];
break;
}
}
if(k>l)
str[m].Prefixes[k+1]='\0';
str[n].Prefixes[k+1]='\0';
}
for(j=0;j<i;j++)
{
printf("%s %s\n",str[j].word,str[j].Prefixes);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator