题目描述
现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,
需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,
每个班级按照两门选修课成绩和的降序排序,成绩相同时按照学生的学号升序排序。
输入
第一行为第一门选修课学生的成绩,第二行为第二门选修课学生的成绩,
每行数据中学生之间以英文分号分隔,每个学生的学号和成绩以英文逗号分隔,
学生学号的格式为 8 位数字
(2 位院系编号+入学年份后 2 位+院系内部 1 位专业编号+所在班级 3 位学号),
学生成绩的取值范围为 [0,100] 之间的整数,
两门选修课选修学生数的取值范围为 [1-2000] 之间的整数。
输出
同时选修了两门选修课的学生的学号,如果没有同时选修两门选修课的学生输出 NULL,
否则,先按照班级划分,班级编号小的先输出,每个班级先输出班级编号(学号前五位),
然后另起一行输出这个班级同时选修两门选修课的学生学号,
学号按照要求排序(按照两门选修课成绩和的降序,成绩和相同时按照学号升序),
学生之间以英文分号分隔。
示例一
输入
01202021,75;01201033,95;01202008,80;01203006,90;01203088,100
01202008,70;01
该博客介绍了如何解决华为在线测试(OD)中的一道问题,涉及C++、Python和Java编程。问题要求找出同时选修两门课程的学生,并按照特定规则排序。解题思路包括使用map存储成绩,根据班级编号和成绩进行排序,重点考察了自定义排序和数据结构的应用。
订阅专栏 解锁全文
19万+

被折叠的 条评论
为什么被折叠?



