#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
解题思路
-
定义数据结构:
- 使用结构体
Book存储每本图书的信息,包括id(图书编号)和pages(页数)。 - 使用两个数组
large和small分别存储页数多于300页的图书和页数不多于300页的图书信息。
- 使用结构体
-
输入数据和分类:
- 首先输入图书数量
n。 - 然后,通过循环读取每本图书的编号和页数,判断其是否为大部头图书,将信息分类存储到相应的数组中。
- 首先输入图书数量
-
排序和输出:
- 使用
stable_sort对large数组按页数从多到少排序。 - 按顺序输出
large数组中的图书编号。 - 按输入顺序输出
small数组中的图书编号。
解释: - 使用
B002,B003,B005为页数多于300的图书,按页数排序。B001,B004按输入顺序输出。