> 如果有两个同学生日相同,输入**靠后**的同学先输出
结构体里再加一个 $id$ 的判断就可以了
by _LighT_ @ 2022-05-08 11:24:04
@[7teen](/user/526386) 求关注~
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct node
{
string name;
int year, mon, day;
int level;
void read()
{
cin >> name >> year >> mon >> day;
}
};
node a[105];
bool cmp(node a,node b){
if (a.year != b.year) return a.year < b.year;
else
{
if(a.mon != b.mon) return a.mon < b.mon;
else if(a.day == b.day && a.mon == b.mon) return a.level > b.level;
else if(a.day != b.day && a.mon == b.mon) return a.day < b.day;
}
}
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
a[i].read();
a[i].level = i;
}
sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; i++) cout << a[i].name << endl;
return 0;
}
```
by JustinXiaoJunyang @ 2022-05-08 13:06:39
@_LighT_谢谢,已经明白
by 7teen @ 2022-05-08 13:22:47
@[JustinXiaoJunyang](/user/397137) 谢谢,已经明白
by 7teen @ 2022-05-08 13:23:09