5分~~~
  • 板块P11185 奖牌排序
  • 楼主Jeeff
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/13 12:12
  • 上次更新2024/10/13 13:51:41
查看原帖
5分~~~
986836
Jeeff楼主2024/10/13 12:12
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct pai
{
	int a,b,c,r;
}ren[1000000];
bool pai1(pai x,pai y)
{
	return x.a>x.a;
}
bool pai2(pai x,pai y)
{
	return x.b>x.b;
}
bool pai3(pai x,pai y)
{
	return x.c>x.c;
}
int hao[1000000];
signed main()
{
	memset(hao,255,900000);
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>ren[i].a>>ren[i].b>>ren[i].c;
		ren[i].r=i;
	}
	sort(ren,ren+n,pai1);
	int shu=-9090909,sum=0;
	for(int i=0;i<n;i++)
	{
		if(ren[i].a!=shu)
			shu=ren[i].a,sum=0;
		else
			sum++;
		hao[ren[i].r]=i-sum;
	}
	sort(ren,ren+n,pai2);
	shu=-9090909,sum=0;
	for(int i=0;i<n;i++)
	{
		if(ren[i].b!=shu)
			shu=ren[i].b,sum=0;
		else
			sum++;
		hao[ren[i].r]=min(hao[i],i-sum);
	}
	sort(ren,ren+n,pai3);
	shu=-9090909,sum=0;
	for(int i=0;i<n;i++)
	{
		if(ren[i].c!=shu)
			shu=ren[i].c,sum=0;
		else
			sum++;
		hao[ren[i].r]=min(hao[i],i-sum);
	}
	for(int i=0;i<n;i++)
	{
		cout<<hao[i]+1<<endl;
	}
}
2024/10/13 12:12
加载中...