rt。最后一个数据点过不去,有哪位大佬能帮我看看?
#include <bits/stdc++.h>
using namespace std;
char a[50005];
int ch[500005][26],tot,n;
bool cnt[500005][110];
void insert(int x) {
cin>>a;
int p=0,len=strlen(a);
for(int i=0; i<len; i++) {
int c=a[i]-'a';
if(ch[p][c]==0) {
ch[p][c]=++tot;
}
p=ch[p][c];
}
cnt[p][x]=true;
}
void find() {
cin>>a;
int p=0,len=strlen(a);
int flag=0;
for(int i=0; i<len; i++) {
int c=a[i]-'a';
if(ch[p][c]==0) {
flag=1;
break;
}
p=ch[p][c];
}
if(flag==0) {
for(int i=1; i<=n; i++) {
if(cnt[p][i]) {
cout<<i<<" ";
}
}
}
cout<<endl;
}
int main() {
cin>>n;
for(int i=1; i<=n; i++) {
int x;
cin>>x;
for(int j=1; j<=x; j++) {
insert(i);
}
}
int m;
cin>>m;
for(int i=1; i<=m; i++) {
find();
}
}