90分,求调!
查看原帖
90分,求调!
1067623
LWB_LXY_OI楼主2024/9/6 11:32

第二个样例没过,其他都过了。。。

#include<bits/stdc++.h>
using namespace std;
int n;
struct Gm
{
	int c, m, e, sum, s, mx, id, ip;
}a[100005];
bool cmp(Gm x, Gm y)
{
	if(x.sum != y.sum)
	{
		return x.sum > y.sum;
	}
	else if(x.s != y.s)
	{
		return x.s > y.s;
	}
	else if(x.mx != y.mx)
	{
		return x.mx > y.mx;
	}
	return false;
}
bool Cmp(Gm x, Gm y)
{
	return x.ip < y.ip;
}
int main()
{
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		cin >> a[i].c >> a[i].m >> a[i].e;
		a[i].ip = i;
		a[i].sum = a[i].c + a[i].e + a[i].m;
		a[i].s = a[i].c + a[i].m;
		a[i].mx = max(a[i].m, a[i].c);
	}
	sort(a + 1, a + 1 + n, cmp);
	for(int i = 1; i <= n; i++)
	{
		if(a[i - 1].sum == a[i - 1].sum && a[i - 1].s == a[i].s && a[i - 1].mx == a[i].mx)
		{
			a[i].id = a[i - 1].id;
		}
		else
		{
			a[i].id = i;
		}
	}
	sort(a + 1, a + 1 + n, Cmp);
	for(int i = 1; i <= n; i++)
	{
		cout << a[i].id << "\n";
	}
	return 0;
}
2024/9/6 11:32
加载中...