最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 成绩排序2

    正文概述 陈老师   2026-01-20 15:39:16  

    题目描述

    在霍格沃茨魔法学校,魔药课的期末成绩公布了!斯内普教授希望将学生的成绩按分数排序,且要求同分学生按照他们名字出现在名单中的顺序排列。这是为了确保评分的公正性,同时考察一个神秘的魔法排序法的效果。请帮助斯内普教授整理出这份成绩单。

    输入格式

    输入的第一行包含一个整数 nn ,表示学生的数量 。接下来的 n n 行,每行包含一个学生的姓名 s 和一个整数分数 a[i],姓名和分数之间用一个空格分隔。分数的范围是 1100

    输出格式

    输出应包含排序后的学生列表,每行格式相同:学生的姓名和他们的分数,按分数升序排列。若分数相同,则按照他们在输入中的顺序排列。

    样例

    3
    Draco 82
    Harry 95
    Hermi 95
    
    Draco 82
    Harry 95
    Hermi 95
    
    4
    Ron 76
    Ginny 89
    Luna 76
    Nevie 89
    
    Ron 76
    Luna 76
    Ginny 89
    Nevie 89
    

    提示

    样例1解释

    在样例1中,Harry 和 Hermi 分数相同。由于 Harry 在输入中先于 Hermi 出现,所以在输出中 Harry 也应该在 Hermi 前面。

    数据范围

    占比 数据范围
    30%30\% 1n101 \leq n \leq 10
    60%60\% 1n1031 \leq n \leq 10^3
    100%100\% $1 \leq n \leq 10^7,s.size() \leq 5,1 \leq a[i] \leq 100$

    温馨提示

    本道题目同时考察同学们对于 空间复杂度 和 时间复杂度 的理解与应用。

    需要同学们优化代码的空间效率,以及代码的运行效率(包括算法本身、输入输出的效率以及其他容器、函数的常数效率等)。

    tips:

    1、结构体中的名字,可以用char数组来存储。

    2、在C++中,未关闭流同步的cin和cout的输入与输出效率低于scanf和printf的效率。

    3、endl的效率显著低于"\n"的效率。

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 成绩排序2