10分求调(必关)
查看原帖
10分求调(必关)
1401381
xunuowei819楼主2025/7/21 18:06

过样例了

#include<bits/stdc++.h>
using namespace std;
struct luogu{
	int No,top,ch,ma,en,sum;
};
int n;
luogu a[10010];
int b[10010];
bool cmp(luogu a,luogu b)
{
	if(a.sum>b.sum) return true;
	else if(a.sum==b.sum&&a.ma+a.ch>b.ma+b.ch) return true;
	else if(a.ma+a.ch==b.ma+b.ch&&max(a.ma,a.ch)>max(b.ma,b.ch)) return true;

	else return false;
}
signed main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].ch>>a[i].ma>>a[i].en;
		a[i].No=i;
		a[i].sum=a[i].ch+a[i].en+a[i].ma;
	}
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;)
	{
		int next=i;
		while(next<=n&&a[i].sum==a[next].sum&&a[i].ch+a[i].ma==a[next].ch+a[next].ma&&max(a[next].ma,a[next].ch)==max(a[i].ma,a[i].ch))
			next++;
		for(int p=i;p<next;p++)
			b[a[p].No]=i;
		i=next;
	}
	for(int i=1;i<=n;i++)
		cout<<b[i]<<"\n";
	return 0;
}
2025/7/21 18:06
加载中...