练习trie树第一道题就废了…求助
#include <bits/stdc++.h>
using namespace std;
int n,m,l;
int t[5000005][26];
int id=0;
int v[1005];
set<int>s[5000005];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&l);
for(int j=1;j<=l;j++){
char c[30];
scanf("%s",c);
int lc=strlen(c);
int u=0;
for(int k=0;k<lc;k++){
if(!t[u][c[k]-'a'])t[u][c[k]-'a']=++id;
u=t[u][c[k]-'a'];
}
s[u].insert(i);
}
}
scanf("%d",&m);
for(int i=1;i<=m;i++){
char c[30];
scanf("%s",c);
int lc=strlen(c);
int u=0;
for(int j=0;j<lc;j++){
u=t[u][c[j]-'a'];
}
for(int j:s[u]){
printf("%d ",j);
}
printf("\n");
}
return 0;
}