社区讨论

不!!!救我!!

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mlkb0p02
此快照首次捕获于
2026/02/13 11:04
4 周前
此快照最后确认于
2026/02/15 22:05
3 周前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
struct st{
	int c,m,e,s1,s2,s3,r,id;
}s[1000005]; 
bool cmp(st a,st b)
{
	if(a.s1!=b.s1) 
	{
		return a.s1>b.s1;
	}
	else
	{
		if(a.s2!=b.s2)
		{
			return a.s2>b.s2;
		}
		else
		{
			return (a.s3>b.s3);
		}
	}
}
bool cmp1(st a,st b)
{
	return a.id<b.id;
}
int main()
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>s[i].c>>s[i].m>>s[i].e;
		s[i].id=i;
		s[i].s1=s[i].c+s[i].m+s[i].e;
		s[i].s2=s[i].c+s[i].m;
		s[i].s3=max(s[i].c,s[i].m);	
	}
	sort(s,s+n,cmp);
	s[0].r=1;
	for(int i=1;i<n;i++)
	{
		if(s[i].s1==s[i-1].s1&&s[i].s2==s[i-2].s2&&s[i].s3==s[i-3].s3)
		{
			s[i].r==s[i-1].r;
		}
		else
		{
			s[i].r=i+1;
		}
	}
	sort(s,s+n,cmp1);
	for(int i=0;i<n;i++)
	{
		cout<<s[i].r<<endl;
	}
	return 0;
}

回复

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

正在加载回复...