1022 Digital Library ---map+set

来源:互联网 发布:savor it 编辑:程序博客网 时间:2024/05/23 16:30
#include <cstdio>#include <cstring>#include <string>#include <map>#include <set>#include <iostream>#include <algorithm>using namespace std;map<string, set<int> > mp[6];int main() {    string s;    char buf[1000];    int n;    scanf("%d", &n);    while (n--) {        int id;        scanf("%d", &id);        getchar();        gets(buf);        mp[1][string(buf)].insert(id);        gets(buf);        mp[2][string(buf)].insert(id);        gets(buf);        int len = strlen(buf);        int l = 0, r = 0;        for (; r < len; r++)            if (buf[r] == ' ') {                mp[3][string(buf+l, buf+r)].insert(id);                l = r + 1;            }        mp[3][string(buf+l, buf+len)].insert(id);        gets(buf);        mp[4][string(buf)].insert(id);        gets(buf);        mp[5][string(buf)].insert(id);    }    int m;    scanf("%d", &m);    while (m--) {        int se;        scanf("%d: ", &se);        gets(buf);        s = string(buf);        printf("%d: %s\n", se, buf);        if (!mp[se][s].size())             printf("Not Found\n");        else             for (set<int>::iterator it = mp[se][s].begin(); it != mp[se][s].end(); it++)                printf("%07d\n", *it);    }    return 0;}
0 0
原创粉丝点击