在查询时一定一定要判断有没有这个单词 少了第21行的就全WA
#include<bits/stdc++.h>
using namespace std;
const int N = 500005;
int tr[N][30],idx;
int b[N];
vector<int> res[N];
int n,m;
void insert(string s,int x){
int p=0;
for(int i=0;i<s.size();i++){
int u=s[i]-'a';
if(!tr[p][u]) tr[p][u]=++idx;
p=tr[p][u];
}
res[p].push_back(x);
}
void query(string s){
int p=0;
for(int i=0;i<s.size();i++){
int u=s[i]-'a';
if(!tr[p][u]){
cout<<" "<<endl;
return;
}
p=tr[p][u];
}
int top=0;
for(int i=0;i<res[p].size();i++){
b[++top]=res[p][i];
}
sort(b+1,b+1+top);
for(int i=1;i<=top;i++){
if(b[i]!=b[i-1]) cout<<b[i]<<" ";
}
cout<<endl;
return;
}
signed main(){
freopen("txt.out","r",stdin);
freopen("t1.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++){
cin>>m;
for(int j=1;j<=m;j++){
string s;
cin>>s;
insert(s,i);
}
}
cin>>m;
while(m--){
string s;
cin>>s;
query(s);
}
return 0;
}