1047 Student List for Course 发表于 2020-05-30 给出学生人数N和学科数K。接着是N行,每一行是每个学生报名的科目。输出每一门课有几个学生报名,分别是谁。 123456789101112131415161718192021222324252627282930#include <iostream>#include <vector>#include <algorithm>#include <string.h>using namespace std;char name[40010][5];vector<int> course[2510];bool cmp1(int a, int b) { return strcmp(name[a], name[b]) < 0;}// cmp1的功能是把学生名按照字典序从小到大排列int main() { int n, k; scanf("%d %d", &n, &k); for(int i = 0; i < n; i++) { int cnt, temp; scanf("%s %d", name[i], &cnt); for(int j = 0; j < cnt; j++) { scanf("%d", &temp); course[temp].push_back(i); } } for(int i = 1; i <= k; i++) { printf("%d %d\n", i, course[i].size()); sort(course[i].begin(), course[i].end(), cmp1); for(int j = 0; j < course[i].size(); j++) printf("%s\n", name[course[i][j]]); } return 0;}