A1022-Digital Library

也挺简单的,注意输出7位数,有格式要求
还可以用map<string, set<int> >

#include<bits/stdc++.h>
using namespace std;
int main()
{
    map<int,string> title;
    map<int,string> author;
    map<int,string> key;
    map<int,string> publisher;
    map<int,string> year;
     
    int N;
    int id;
    string t,a,k,p,y;
    scanf("%d",&N);
    
    for(int n=0;n<N;n++)
    {
        scanf("%d",&id);
        getchar();
        getline(cin,t);     
        getline(cin,a);     
        getline(cin,k);     
        getline(cin,p);     
        getline(cin,y);
        title[id]=t;
        author[id]=a;
        key[id]=k;
        publisher[id]=p;
        year[id]=y; 
    }
    int M;
    scanf("%d",&M);
    string type;
    string query;
    getchar();
    for(int m=0;m<M;m++)
    {
        int flag=0;
        getline(cin,type,' ');
        
        getline(cin,query);
    
        map<int,string>::iterator it;
        printf("%s\n",(type+" "+query).c_str());
        if(type=="1:")
        {
            for(it=title.begin();it!=title.end();it++)
                if(it->second==query)
                {
                    flag=1;
                    printf("%07d\n",it->first);
                }           
        }
        if(type=="2:")
        {
            for(it=author.begin();it!=author.end();it++)
                if(it->second==query)
                {
                    flag=1;
                    printf("%07d\n",it->first);
                }
        }
        if(type=="3:")
        {
            for(it=key.begin();it!=key.end();it++)
                if(it->second.find(query)!=string::npos)
                {
                    flag=1;
                    printf("%07d\n",it->first);
                }
        }
        if(type=="4:")
        {
            for(it=publisher.begin();it!=publisher.end();it++)
                if(it->second==query)
                {
                    flag=1;
                    printf("%07d\n",it->first);
                }
        } 
        if(type=="5:")
        {
            for(it=year.begin();it!=year.end();it++)
                if(it->second==query)
                {
                    flag=1;
                    printf("%07d\n",it->first);
                }
        }
        if(flag==0)
        printf("Not Found\n");  
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容