#include<bits/stdc++.h>
#define N 500010
using namespace std;
struct trie
{
int nxt[N][26],exist[N],cnt;
void insert(char* c)
{
int len=strlen(c);
int p=0;
for(int i=0;i<len;i++)
{
int s=c[i]-'a';
if(nxt[p][s]) p=nxt[p][s];
else
{
nxt[p][s]=++cnt;
p=nxt[p][s];
}
}
exist[p]++;
}
int search(char* c)
{
int p=0;
int len=strlen(c);
for(int i=0;i<len;i++)
{
int s=c[i]-'a';
if(!nxt[p][s]) return 0;
p=nxt[p][s];
}
if(exist[p]==1)
{
exist[p]=2;
return 1;
}
if(exist[p]==2)
{
return 2;
}
}
};
char str[100];
int main()
{
int n;
trie t;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>str;
t.insert(str);
}
int m;
cin>>m;
for(int i=0;i<m;i++)
{
cin>>str;
switch(t.search(str))
{
case 0:
cout<<"WRONG"<<endl;
break;
case 1:
cout<<"OK"<<endl;
break;
case 2:
cout<<"REPEAT"<<endl;
break;
}
}
return 0;
}
RE求助,本地样例正确,在本地测试题目数据会提示"...已停止工作"