PAT 1039

题目 : Course List for Student

分值 : 25
难度 : 中等题
思路 : 一个map<string,set<int>> 读入数据就好了
坑点 : 最后一个点在超时的临界边缘
评语 : 

具体代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <vector>
#include <set>
#include <map>
using namespace std;
map <string, set<int>> db ;
int main()
{
int N , K ,c1,c2;
string s;
cin >> N >> K ;
for(int i = 1 ; i<= K ; i++)
{
cin >> c1 >>c2 ;
for(int j = 0 ; j < c2 ;j++)
{
cin >> s ;
db[s].insert(c1);
}
}
for(int i = 0 ;i< N ; i++)
{
cin >> s ;
cout << s <<" "<<db[s].size() ;
for(auto j = db[s].begin() ; j !=db[s].end() ; j++)
{
cout <<" "<<*j ;
}
cout <<endl ;
}
}