#P13723. 生日

提交4 通过1
通过率25%
时间限制1000ms
内存限制256MiB
    ID: 13723 传统题 1000ms 256MiB 尝试: 4 已通过: 1 难度: 普及- 上传者: 标签>基础语法结构体基础算法自定义排序一维数组

题目描述

题目背景

学校的信息学小组整理了一份生日登记表,希望根据出生日期排出年龄顺序。请编写程序完成这项工作。

题目描述

给出 nn 名同学的姓名和出生年、月、日。年龄较大的同学应当排在前面,也就是说,出生日期较早的人优先输出。

比较两人的出生日期时,依次比较年份、月份和日期:

  1. 出生年份较小者年龄更大;
  2. 年份相同时,出生月份较小者年龄更大;
  3. 年、月相同时,出生日较小者年龄更大;
  4. 如果两人的出生日期完全相同,则在输入中出现得更晚的人先输出。

输入格式

第一行一个整数 nn,表示同学人数。

接下来 nn 行,每行包含四项信息:

name year month day

其中 name 是不含空格的姓名,yearmonthday 分别表示出生年、月、日。

输出格式

输出 nn 行,每行一个姓名,顺序为年龄从大到小。

输入样例 #1

5
Alice 2000 1 2
Bob 1999 12 31
Carol 2000 1 2
Dave 2001 5 6
Eve 1999 12 31

输出样例 #1

Eve
Bob
Carol
Alice
Dave

样例说明 #1

BobEve 的生日相同,但 Eve 输入得更晚,因此先输出。AliceCarol 同理。

输入样例 #2

1
solo 2000 1 1

输出样例 #2

solo

输入样例 #3

3
a 2000 5 6
b 2000 5 6
c 1999 12 31

输出样例 #3

c
b
a

数据范围与约定

  • 1n1001\le n\le 100
  • 输入中的日期均为合法日期;
  • 姓名不包含空格;
  • 同一天出生的同学按照输入顺序的逆序输出。