社区讨论

悬关30分

B3968[GESP202403 五级] 成绩排序参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mhjs94qh
此快照首次捕获于
2025/11/04 07:40
4 个月前
此快照最后确认于
2025/11/04 07:40
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
struct WAT
{
	int q,w,e,qwe=0,qw=0,wq=0,ai,ii;
}a[10005];
bool cpu(WAT x,WAT y)
{
	if(x.qwe!=y.qwe)
		return x.qwe>y.qwe;
	else if(x.qw!=y.qw)
		return x.qw>y.qw;
	else if(x.wq!=y.wq)
		return x.wq>y.wq;
	else
		return x.qwe>y.qwe;
}
bool cup(WAT x,WAT y)
{
	return x.ai<y.ai;
}
int main()
{
	int n;
	cin >> n;
	for(int i=1;i<=n;i++)
	{
		cin >> a[i].q >> a[i].w >> a[i].e;
		a[i].ai=i;
		a[i].qw=a[i].q+a[i].w;
		a[i].wq=max(a[i].q,a[i].w);
		a[i].qwe=a[i].q+a[i].w+a[i].e;
	}
	sort(a+1,a+1+n,cpu);
	for(int i=1;i<=n;i++)
		a[i].ii=i;
	sort(a+1,a+n+1,cup);
	for(int i=1;i<=n;i++)
	{
		if(a[i].qwe==a[i-1].qwe&&a[i].qw==a[i-1].qw&&a[i].wq==a[i-1].wq)
		{
			a[i].ii=a[i-1].ii;
			cout << a[i-1].ii << endl;
		}
		else
			cout << a[i].ii << endl;
	}
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...