(只能过前9个点)
#include<bits/stdc++.h>
using namespace std;
int n,trie[500010][28],l,cnt,m,lett[28][500010],num[28];
string ipt;
void insert(string s,int x)
{
int pos = 0,c;
for(int i = 0;i < s.length();i++)
{
c = s[i] - 'a';
if(!trie[pos][c]) trie[pos][c] = ++cnt;
pos = trie[pos][c];
}
lett[c][++num[c]] = x;
}
void find(string s)
{
int pos = 0,c;
for(int i = 0;i < s.length();i++)
{
c = s[i] - 'a';
if(!trie[pos][c])
{
puts("");
return;
}
pos = trie[pos][c];
}
for(int i = 1;i <= num[c];i++)
printf("%d ",lett[c][i]);
puts("");
}
int main()
{
scanf("%d",&n);
for(int i = 1;i <= n;i++)
{
scanf("%d",&l);
while(l--)
{
cin >> ipt;
insert(ipt,i);
}
}
scanf("%d",&m);
for(int i = 1;i <= m;i++)
{
cin >> ipt;
find(ipt);
}
}
求大佬指教