题解:P1104 生日
题目传送门
题意
给定
思路
我们用结构体储存每个同学的信息时还可以用
接下来就是正常比较年龄了,我们都知道谁的出生年
bool cmp(node a, node b)
{
if (a.y == b.y)
{
if (a.m == b.m)
{
if (a.d == b.d)
return a.id > b.id;
return a.d < b.d;
}
return a.m < b.m;
}
return a.y < b.y;
}
其他细节见代码。
代码
#include <bits/stdc++.h>
using namespace std;
int n;
struct node
{
string s;
int id, y, m, d;
} a[110];
bool cmp(node a, node b)
{
if (a.y == b.y)
{
if (a.m == b.m)
{
if (a.d == b.d)
return a.id > b.id;
return a.d < b.d;
}
return a.m < b.m;
}
return a.y < b.y;
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i].s >> a[i].y >> a[i].m >> a[i].d;
a[i].id = i;
}
sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; i++)
cout << a[i].s << "\n";
return 0;
}
题解来之不易,且看且珍惜。给个赞再走吧。
题目传送门