洛谷——P1104 生日
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷——P1104 生日相关的知识,希望对你有一定的参考价值。
P1104 生日
题目描述
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
说明
数据规模
1<n<100
length(s)<20
模拟
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define N 1010 using namespace std; int n; int read() { int x=0,f=1; char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-‘0‘,ch=getchar(); return x*f; } struct Node { string s; int y,m,d,num; }node[N]; int cmp(Node a,Node b) { if(a.y!=b.y) return a.y<b.y; if(a.m!=b.m) return a.m<b.m; if(a.d!=b.d) return a.d<b.d; return a.num>b.num; } int main() { n=read(); for(int i=1;i<=n;i++) { cin>>node[i].s; node[i].y=read(); node[i].m=read(); node[i].d=read(); node[i].num=i; } sort(node+1,node+1+n,cmp); for(int i=1;i<=n;i++) cout<<node[i].s<<endl; return 0; }
以上是关于洛谷——P1104 生日的主要内容,如果未能解决你的问题,请参考以下文章