P3879 [TJOI2010] 阅读理解
#include<iostream>
#include<cstdio>
#include<map>
#include<vector>
std::map<std::string, std::vector<int> > mp;
int main()
{
int n, m;
scanf("%d", &n);
std::string s;
getline(std::cin, s);
for (int i = 1; i <= n; i++)
{
getline(std::cin, s);
s += " ";
std::string ss = "";
for (auto c : s)
{
if (c != ' ')
{
ss += c;
}
else
{
mp[ss].push_back(i);
ss = "";
}
}
}
scanf("%d", &m);
for (int i = 1; i <= m; i++)
{
std::cin >> s;
if (mp.count(s))
{
for (auto x : mp[s])
{
printf("%d ", x);
}
}
printf("\n");
}
return 0;
}