1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 using namespace std; 6 const int MAXN = 40010; 7 const int MAXC = 2510; 8 vector<int> Courses[MAXC]; 9 char StuName[MAXN][5]; 10 bool cmp(int a, int b){ 11 //按照名字典序从小到大排序 12 return strcmp(StuName[a], StuName[b]) < 0; 13 } 14 int main(){ 15 int N, K, SelectCourseNumber, CourseIndex; 16 scanf("%d %d", &N, &K); //学生人数及课程数 17 for(int i = 0; i < N; i++){ 18 scanf("%s %d", StuName[i], &SelectCourseNumber); //学生姓名及选课数 19 for(int j = 0; j < SelectCourseNumber; j++){ 20 scanf("%d", &CourseIndex); //选择的课程编号 21 Courses[CourseIndex].push_back(i); //将学生 i 加入第 CourseIndex门课中 22 } 23 } 24 for(int i = 1; i <= K; i++){ 25 printf("%d %d\n", i, Courses[i].size()); //第 i 门课的学生人数 26 sort(Courses[i].begin(), Courses[i].end(), cmp); //对第 i 门课的学生排序 27 for(int j =0 ; j< Courses[i].size(); j++){ 28 printf("%s\n", StuName[Courses[i][j]]); //输出学生姓名 29 } 30 } 31 return 0; 32 }
PAT 甲级 A1047 (2019/02/22)
猜你喜欢
转载自www.cnblogs.com/zjsaipplp/p/10417622.html
今日推荐
周排行