#2593. 排队(慈溪2015第2题)

排队(慈溪2015第2题)

Description

        在很多场合,我们都需要排队比如超市付款医院看病就餐等。“尊老爱幼”是 中华名族的传统美德,所以在排队过程遇到老人、幼儿我们应该主动让他前面。 中华名族的传统美德,所以在排队过程遇到老人、幼儿我们应该主动让他前面。 请按以下 4条规则编写一个排队的程序。
        (1) 老人 (年龄 ≥ 60 岁)和幼儿( 年龄 ≤ 6岁)比其他人( 6岁 < 年龄 < 60 岁) 优先排在队伍的前面,且 所有幼儿排在老人的前面。
        (2) 老人按年龄 从大到小 的顺序排队,年龄大的优先。年龄相同时,先到人在前面。
        (3) 幼儿 按年龄 从小到大 的顺序排队,年龄小的优先。年龄相同时,先到人在前面。
        (4) 其他人 只按到达的先后顺序排队 。

Input Format

输入文件 lineup.in :
输入从文件中读取,输入共 n+1 行。
第 1行一个整数 n,表示排队的总人数。
第 2行到第 n+1 行, 按照到达的先后顺序给出了每个人的基本信息。每行两个整数, 给出了每个人的基本信息。( 编号保证不会重复,但不保证连续),第二个整数表示这个人的年龄。

Output Format

输出文件 lineup.out :结果输出到文件中输出共 n行。
每行一个人的编号,表示从前往后的排队结果。
8
1 14
3 6
4 5
5 62
11 48
17 25
21 60
13 62
4
3
5
13
21
1
11
17

Hint

【样例解释】
共有 8个人参加排队。编号为 3和 4的两个人为 幼儿,年龄分别6岁和 5岁。编号为 5 、21 和 13 的三个人为老人,年龄分别62 岁、 60 岁和 62 岁。根据排队规则,老人和幼儿排在其他人的前面,而幼儿又排在老人的前面,所以先排编号为 3和 4的幼儿 。幼儿按年龄从小到大的顺序排队,所以第一个人是 4号,然后是 3号。接下来排老人,年龄大的先排 ,所以先5号和 13 号,但 5号比 13 号先到,所以排 5号,然后 13 号,接下来 21 号。剩下的人 不论年龄大小,全部 按到达的顺序排队,依次为 1号、 11 号和 17 号。
【数据范围约定】
40% 的测试点输入数据:保证 1≤n≤99 ,且每个人的年龄都不相同。
60% 的测试点输入数据:保证 1≤n≤1000 。
100% 的测试点输入数据:保证 1≤n≤30000 , 1≤人的编号≤ ≤ 人的编号32000 ,2≤人的年龄≤ ≤ 人的年龄100 。

Source

排序(双关键字)