#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+10,maxm=1e5+10;
int n,m;
string s;
int tot,dic[maxn*50][30],cnt[maxn*50];
bool vis[maxn*50];
void build(string a){
int p=0;
for(int i=0;i<a.length();i++){
if(!dic[p][a[i]-'a'])dic[p][a[i]-'a']=++tot;
p=dic[p][a[i]-'a'];
}
cnt[p]++;
}
void check(string a){
int p=0;
for(int i=0;a[i];i++){
if(!dic[p][a[i]-'a']){
printf("WRONG\n");
return;
}
p=dic[p][a[i]-'a'];
}
if(vis[p]){
printf("REPEAT\n");
return;
}
vis[p]=1;
printf("OK\n");
return;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%s",&s);
build(s);
}
scanf("%d",&m);
for(int i=1;i<=m;i++){
scanf("%s",&s);
check(s);
}
return 0;
}
会显示:terminate called after throwing an instance of ‘std::bad_alloc‘ what(): std::bad_alloc
改成cin就全好了