#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int ch[300001][26];
int id,p[30001];
char s[10001][25];
void insert(char *s)
{
int cur=1,i;
for(i=0;s[i];i++)
{
if(!ch[cur][s[i]-'a'])
ch[cur][s[i]-'a']=++id;
cur=ch[cur][s[i]-'a'];
p[cur]++;
}
}
void query(char *s)
{
int cur=1,i;
for(i=0;s[i];i++)
{
cur=ch[cur][s[i]-'a'];
if(p[cur]==1)
{
i++;
break;
}
}
s[i]='\0';
puts(s);
}
int main()
{
//memset(p,0,sizeof(p));當時一不小心就加了個memset,結果一直ML,後來百度了一下才知道,全局變量如果沒有初始化時沒有分配空間的。
//memset(ch,0,sizeof(ch));
id=1;
int i=0,j;
while(gets(s[++i])) insert(s[i]);
for(j=1;j<=i;j++)
{
printf("%s ",s[j]);
query(s[j]);
}
return 0;
}
POJ 2001(傻逼版)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.