PAT1022. Digital Library

#include <iostream>
#include<cstdio>
#include<map>
#include<string>
#include<set>
using namespace std;
int n;
map<string,set<int> >mptitle,mpauthor,keyword,publisher,year;


void cal(map<string,set<int> >&mp,string&str){
if(mp.find(str)==mp.end())cout<<"Not Found"<<endl;
else{
set<int>::iterator it=mp[str].begin();
for(;it!=mp[str].end();it++){
printf("%07d\n",*it);
}

}

}

int main(){
    //freopen("d://jin.txt","r",stdin);
string title,author,key,publish,y;
char c;
cin>>n;
int d;
for(int i=0;i<n;i++){
cin>>d;
c=getchar();
getline(cin,title);
mptitle[title].insert(d);
getline(cin,author);
mpauthor[author].insert(d);
while(cin>>key){
keyword[key].insert(d);
c=getchar();
if(c=='\n')break;}
getline(cin,publish);
publisher[publish].insert(d);
getline(cin,y);
year[y].insert(d);
}
string temp;
int m;
cin>>m;
int t;
for(int i=0;i<m;i++){
scanf("%d: ",&t);

getline(cin,temp);
cout<<t<<": "<<temp<<endl;
if(t==1){
cal(mptitle,temp);
}
else if(t==2){cal(mpauthor,temp);}
else if(t==3){cal(keyword,temp);}
else if(t==4){cal(publisher,temp);;}
else{cal(year,temp);;}


}





    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值