水。
题意
给出N本书的编号、书名、作者、关键词(可能有多个)、出版社及出版年份,并给出M个查询,每个查询给出书名、作者、关键词(单个)、出版社及出版年份中的一个,要求输出满足该给出信息的所有书的编号。
map<string,set<string>> mp[6];
int n,m;
int main()
{
cin>>n;
cin.ignore();
for(int i=0;i<n;i++)
{
string id,title,author,keywords,publisher,publish_year;
getline(cin,id);
getline(cin,title);
mp[1][title].insert(id);
getline(cin,author);
mp[2][author].insert(id);
getline(cin,keywords);
stringstream ss(keywords);
string keyword;
while(ss>>keyword)
mp[3][keyword].insert(id);
getline(cin,publisher);
mp[4][publisher].insert(id);
getline(cin,publish_year);
mp[5][publish_year].insert(id);
}
cin>>m;
cin.ignore();
while(m--)
{
string s;
getline(cin,s);
string t=s.substr(3);
cout<<s<<endl;
int k=s[0]-'0';
if(mp[k][t].size() == 0)
puts("Not Found");
else
{
for(auto id:mp[k][t])
cout<<id<<endl;
}
}
//system("pause");
return 0;
}