题解1中改为稳定排序没有用啊,他写的自定义函数规定了输入次序排序了吧
  • 板块P1104 生日
  • 楼主A_pier
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/10/20 14:31
  • 上次更新2023/11/4 03:11:00
查看原帖
题解1中改为稳定排序没有用啊,他写的自定义函数规定了输入次序排序了吧
571939
A_pier楼主2021/10/20 14:31

下面是我写的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;
}
2021/10/20 14:31
加载中...