[洛谷]P1104 生日 (#模拟 -1.20)

题目描述

cjf君想调查学校OI组每个同学的生日,并按照从大到小的顺序排序。但cjf君最近作业很多,没有时间,所以请你帮她排序。

输入输出格式

输入格式:

有2行,

第1行为OI组总人数n;

第2行至第n+1行分别是每人的姓名s、出生年y、月m、日d。

输出格式:

有n行,

即n个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)

输入输出样例

输入样例#1

3
Yangchu 1992 4 23
Qiujingya 1993 10 13
Luowen 1991 8 1

输出样例#1

Luowen
Yangchu
Qiujingya

思路

#include 
#include 
#include 
using namespace std;
typedef struct
{
	char name[21];
	int year,month,day;
}lxydl;
bool operator<(const lxydl &a, const lxydl &b)
{
	if(a.year != b.year)
		return a.year>n;
	for(i=1;i<=n;i++)
	{
		int a1,b,c;char na[21];
		cin>>na>>a1>>b>>c;
		a[i]=(node){na,a1,b,c};//get新写法 
		//cin>>a[i].name>>a[i].year>>a[i].month>>a[i].day;
	}
	stable_sort(a+1,a+n+1);//stl稳定排序 
	for(i=1;i<=n;i++)
	{
		cout<

 

你可能感兴趣的:(Noip2018赛前集训,洛谷原创,模拟,洛谷刷题题解)