Note
- map
- 注意格式化输出!!!(the 7-digit ID number)
- 输入的关键词没有给定个数,可以使用while(cin >> s)并且判断c = getchar(),c是否等于\n,如果是再退出循环。(柳婼)
Code:
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifndef ONLINE_JUDGE
freopen("data.txt","r",stdin);
#endif
int n,m,id;
string s;
scanf("%d",&n);
map<string,set<int>> mp[6];
for(int i=0;i<n;i++){
scanf("%d",&id);
getchar();
for(int j=1;j<6;j++){
getline(cin,s);
if(j==3){
stringstream ss(s);
while(getline(ss,s,' ')){
mp[j][s].insert(id);
}
}
else mp[j][s].insert(id);
}
}
int query;
scanf("%d",&m);
getchar();
for(int i=0;i<m;i++){
getline(cin,s);
query=s[0]-'0';
s=s.substr(3);
printf("%d: %s\n",query,s.c_str());
if(mp[query][s].size()==0) printf("Not Found\n");
else{
for(set<int>::iterator it=mp[query][s].begin();it!=mp[query][s].end();it++)
printf("%07d\n",*it);
}
}
return 0;
}