题目翻译:
给出选课人数和课程数目,然后再给出每个人的选课情况,然后针对每一门课程输出选课总人数及所有选课额学生的姓名。
题解思路:
用一个二维字符数组存储每门课的选课同学姓名,然后排序输出。
代码:
#include<bits/stdc++.h>
using namespace std;
int N, K;
int main()
{
scanf("%d %d", &N, &K);
vector<string> v[K+1];
while (N--)
{
string p;p.resize(4);
int t;
scanf("%s %d", &p[0], &t);
while (t--)
{
int m;scanf("%d", &m);
v[m].push_back(p);
}
}
for (int i = 1;i <= K;i++)
{
sort(v[i].begin(), v[i].end());
printf("%d %d\n", i, v[i].size());
for (auto j : v[i])
printf("%s\n", j.c_str());
}
}
坑点:
对于测试点3超时的问题:将cin以及cout以scanf和printf代替。