洛谷显示编译失败,但自测可以运行
#include<bits/stdc++.h>
using namespace std;
int ch[500001][65],idx = 0;
bool cnt[500001][10001];
int n,q;
void build(string s,int no){
int p = 0;
for (int i = 0; s[i] ;i++){
int x = s[i]-'a';
if (!ch[p][x]) ch[p][x] = ++idx;
p = ch[p][x];
}
cnt[p][no] = 1;
}
void query(string s){
int p = 0;
for (int i = 0; s[i] ;i++){
int x = s[i]-'a';
if (!ch[p][x]) {
cout<<endl;
return ;
}
p = ch[p][x];
}
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 t;
cin>>t;
for (int j = 1;j <= t;j++){
string s;
cin>>s;
build(s,i);
}
}
cin>>q;
for (int i = 1;i <= q;i++){
string s;
cin>>s;
query(s);
}
}