刚开始学字典树,不知道为什么没有过,望大佬帮忙看看
#include<bits/stdc++.h>
#define N 1000001
using namespace std;
inline int read(){int x=0,y=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-') y=-y;c=getchar();}while(c>='0'&&c<='9'){x=x*10+(c^'0');c=getchar();}return x*y;}
int trie[1000200][75],cnt[N],idx;
char s[N];
void insert(char *s)
{
int p=0;
for(int i=0;s[i];i++)
{
int j=(s[i]>='a'&&s[i]<='z')?s[i]-'a':s[i]-'a'+32;
if(!trie[p][j]) trie[p][j]=++idx;
p=trie[p][j];
}
// cnt[p]++;
}
int query(char *s)
{
int p=0,i;
for(i=0;s[i];i++)
{
int j=(s[i]>='a'&&s[i]<='z')?s[i]-'a':s[i]-'a'+32;
if(!trie[p][j]) return 0;
p=trie[p][j];
}
cnt[p]++;
return cnt[p];
}
signed main()
{
int n=read();
for(int i=1;i<=n;i++){cin>>s;insert(s);}
int q=read();
for(int i=1;i<=q;i++)
{
cin>>s;
int ans=query(s);
if(!ans) puts("WRONG");
else if(ans!=1) puts("REPEAT");
else puts("OK");
}
return 0;
}