下面是我写的ac代码,没有用stable_sort,用的sort,感觉这个题不能用裸用stable_sort吧,因为题目要求后输入的先输出诶,因此只能在cmp函数中自己规定顺序吧,所以题解1中用的stable_sort其实没有意义吧,是不是这样理解的呢,有没有大佬说下
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct student {
string name;
int y, m, d;
int order;
};
student s[100];
bool cmp(student s1, student s2)
{
if (s1.y != s2.y)
return s1.y < s2.y;
else {
if (s1.m != s2.m)
return s1.m < s2.m;
else {
if (s1.d != s2.d)
return s1.d < s2.d;
else {
return s1.order > s2.order;
}
}
}
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> s[i].name >> s[i].y >> s[i].m >> s[i].d;
s[i].order = i;
}
sort(s, s + n, cmp);
for (int i = 0; i < n; i++)
cout << s[i].name << endl;
return 0;
}