代码如下,最后 2 个测试点错误。
衷心感谢大佬帮忙!!测试网址、数据https://www.luogu.com.cn/record/221901423
#include <bits/stdc++.h>
using namespace std;
struct stu
{
string name;
int year;
int month;
int day;
};
inline void swap(stu &stu1,stu &stu2)
{
stu stu3;
stu3.name=stu1.name;
stu3.year=stu1.year;
stu3.month=stu1.month;
stu3.day=stu1.day;
stu1.name=stu2.name;
stu1.year=stu2.year;
stu1.month=stu2.month;
stu1.day=stu2.day;
stu2.name=stu3.name;
stu2.year=stu3.year;
stu2.month=stu3.month;
stu2.day=stu3.day;
}
int main()
{
int16_t n;
cin>>n;
stu a[n+1];
for(int i=1;i<=n;++i)
{
cin>>a[i].name>>a[i].year>>a[i].month>>a[i].day;
}
for(int j=n;j>1;--j)
{
for(int i=2;i<=j;++i)
{
if(a[i].year<a[i-1].year||(a[i].year==a[i-1].year&&a[i].month<a[i-1].month)||(a[i].year==a[i-1].year&&a[i].month==a[i-1].month&&a[i].day<a[i-1].day)||(a[i].year==a[i-1].year&&a[i].month==a[i-1].month&&a[i].day==a[i-1].day))
swap(a[i],a[i-1]);
}
}
for(int i=1;i<=n;++i)
{
cout<<a[i].name<<'\n';
}
return 0;
}
衷心感谢大佬帮忙!!谢谢。