题目链接:传送门
思路:因为姓名字符串只有4位,可以使用26 * 26 * 26 * 10个vector来存储不同学生的选课信息,但是只用map是可以卡过去的,加上cin.tie(0)和cout.tie(0)。
代码:(卡过的。。)
#include <bits/stdc++.h>
using namespace std;
map <string , vector<int> >mp;
vector <string> v;
int main() {
int n , k;
cin.tie(0);cout.tie(0);
ios::sync_with_stdio(0);
cin >> n >> k;
for(int i = 0 ; i < k ; i++) {
int num , m;
cin >> num >> m;
while(m--) {
string s;
cin >> s;
if(mp.count(s))v.push_back(s);
mp[s].push_back(num);
}
}
for(int i = 0 ; i < v.size() ; i++)sort(mp[v[i]].begin() , mp[v[i]].end());
for(int i = 0 ; i < n ; i++) {
string s;
cin >> s;
cout << s;
cout << " " << mp[s].size();
for(int j = 0 ; j < mp[s].size() ; j++) {
cout << " ";
cout << mp[s][j];
}
cout << "\n";
}
return 0;
}