原题链接:
https://pintia.cn/problem-sets/994805342720868352/exam/problems/type/7?problemSetProblemId=994805433955368960&page=0
代码:
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
#define endl '\n'
int N, K;
vector<string> course[2501];//course[i]表示选课程号为i的课程的学生姓名列表
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> N >> K;
for (int i = 0; i < N; i++) {
string name;
int C;
cin >> name >> C;
for (int j = 0; j < C; j++) {
int courseNumber;
cin >> courseNumber;
course[courseNumber].emplace_back(name);
}
}
for (int i = 1; i <= K; i++) {
cout << i << " " << course[i].size() << endl;
sort(course[i].begin(), course[i].end());
for (auto studentName : course[i]) {
cout << studentName << endl;
}
}
return 0;
}