排序以及快排的使用
时间2021.01.04
题目
https://www.luogu.com.cn/problem/P1104
代码编写
#include<bits/stdc++.h>
using namespace std;
struct no{
char name[100];
int year,mon,day;
int level;
}a[110];
bool cmp(no a,no b)
{
if(a.year<b.year)return 1;
if(a.year>b.year)return 0;
if(a.yearb.year)
{
if(a.mon<b.mon)return 1
if(a.mon>b.mon)return 0;
if(a.monb.mon)
{
if(a.day<b.day)return 1;
if(a.day>b.day)return 0;
if(a.day==b.day)
{
if(a.level>b.level)return 1;
else return 0;
}
}
}
}
int main()
{
int n;
scanf("%d",&n);
int i,j;
for(i=1;i<=n;i++)
{
scanf("%s %d %d %d",a[i].name ,&a[i].year,&a[i].mon,&a[i].day);
a[i].level=i;
} //输入所有的数据
sort(a+1,a+n+1,cmp);//快排,并进行要求运行
for(i=1;i<=n;i++)
{
printf("%s\n",a[i].name);
}//输出答案
return 0;
}