题目描述
有一些日期,日期格式为 MM/DD/YYYY
。
将其按日期大小排列输出。
输入格式
输入第一行一个整 𝑛(1≤𝑛≤1000)n(1≤n≤1000),表示日期的个数。
接下来 𝑛n 行按照题目描述的格式输入 𝑛n 个日期。
输出格式
输出从早到晚排序后的日期,一个日期占一行,日期输出的格式和输入一样(不足的位数前补0
)。
样例输入
8
01/26/1998
09/26/1927
01/05/1927
04/16/2024
08/08/1993
01/01/2019
06/22/1973
07/16/2030
样例输出
01/05/1927
09/26/1927
06/22/1973
08/08/1993
01/26/1998
01/01/2019
04/16/2024
07/16/2030
代码:
#include<bits/stdc++.h>
using namespace std;
struct s{
int m,d,y;
bool operator <(const s&x) const{
if(y==x.y){
if(m==x.m){
return d<x.d;
}
return m<x.m;
}
return y<x.y;
}
};
s a[10005];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int m,d,y;
scanf("%d/%d/%d",&m,&d,&y);
a[i]={m,d,y};
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
printf("%02d/%02d/%04d\n",a[i].m,a[i].d,a[i].y);
}
return 0;
}