#2076. 图书分类与排序(难度电子学会T4)

图书分类与排序(难度电子学会T4)

图书分类与排序

输入一组图书信息(包括图书编号和页数),将页数多于300页的图书按照页数从多到少输出,页数少于等于300页的图书按照输入顺序输出。

输入格式:

  • 第一行输入一个整数 n,表示图书的数量。
  • 接下来的 n 行每行输入一个字符串 id(图书编号)和一个整数 pages(页数)。

输出格式:

  • 先按照页数从多到少输出大部头图书的编号。
  • 然后按输入顺序输出其他图书的编号。

样例输入


5
B001 250
B002 400
B003 320
B004 200
B005 305

样例输出


B002
B003
B005
B001
B004

解题思路

  1. 定义数据结构​:

    • 使用结构体 Book 存储每本图书的信息,包括 id(图书编号)和 pages(页数)。
    • 使用两个数组 largesmall 分别存储页数多于300页的图书和页数不多于300页的图书信息。
  2. 输入数据和分类​:

    • 首先输入图书数量 n
    • 然后,通过循环读取每本图书的编号和页数,判断其是否为大部头图书,将信息分类存储到相应的数组中。
  3. 排序和输出​:

    • 使用 stable_sortlarge 数组按页数从多到少排序。
    • 按顺序输出 large 数组中的图书编号。
    • 按输入顺序输出 small 数组中的图书编号。


    解释:

  • B002, B003, B005 为页数多于300的图书,按页数排序。
  • B001, B004 按输入顺序输出。