当前位置:首页 > 题解目录 > 正文内容

生日

亿万年的星光5年前 (2021-01-28)题解目录5218

【题目描述】

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

【输入描述】

有2行,

第1行为OI组总人数n;

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

【输出描述】

有n行,

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

【样例输入】

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

【样例输出】

Luowen
Yangchu
Qiujingya

【数据规模】

1<n<100

length(s)<20

【参考答案】

#include<bits/stdc++.h>
using namespace std;
struct birthday
{
   string name; //学生姓名
    int year; //生日的年份
   int month; //生日的月
   int day; //生日的天
   int order;     //用户的输入顺序
};
birthday br[105]; //初始化
bool cmp(birthday x, birthday y)
{
   if(x.year!=y.year)
       return x.year<y.year; //先按照年份排序(年份小的年龄大)
   if(x.month!=y.month)
       return x.month<y.month; //按照月份排序
   if(x.day!=y.day)
       return x.day<y.day; //按照日排序
   else
       return x.order>y.order; //同年同月同日生,则按照顺序相反输出
   
}
int main()
{
   int n;
   cin>>n;
   for(int i=0;i<n;i++)
   {
       cin>>br[i].name>>br[i].year>>br[i].month>>br[i].day;
       br[i].order=i; //记录顺序
   }
   sort(br,br+n,cmp);
   for(int i=0;i<n;i++)
       cout<<br[i].name<<endl;
   return 0;
   
   
}



扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

【题解】尼科彻斯定理

【题目描述】 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。【输入描述】任一正整数【输出描述】该数的立方分解为一串连续奇数的和【样例输入】13【样例输出】13*13*...

【题解】夹角

【题目描述】这次童鞋们面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。注:夹角的范围[0,180],两个点不会在圆心出现。【输入描述】输入数据的第一行是一个数据T,表示...

【题解】背包问题3

【题目描述】完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题要求是背...

【NOIP2000】计算器的改良

【题目描述】NCL 是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手 ZL...

【题解】进制转换(2019青岛市程序设计竞赛)

【问题描述】输入十进制正整数n和k,输出n的k进制数。我们熟悉的十进制所需的10个基数(基本的数字符号)是0,1,2,3,4,5,6,7,8,9。当10<k<=16时,k进制的k个基数从小...

【题解】怪盗基德的滑翔翼

【题解】怪盗基德的滑翔翼

【题目描述】怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗...