45pts求调,TLE
  • 板块P11185 奖牌排序
  • 楼主HUTEHE
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/10/13 12:37
  • 上次更新2024/10/13 14:39:35
查看原帖
45pts求调,TLE
1086575
HUTEHE楼主2024/10/13 12:37
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#define int long long
using namespace std;
using namespace __gnu_pbds;
struct node
{
	int au;
	int id;
}a[200005];
struct node1
{
	int ag;
	int id;
}b[200005];
struct node2
{
	int cu;
	int id;
}c[200005];
int n;
inline void solve(int id)
{
	int ai=0,bi=0,ci=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i].id==id)
		{
			for(int j=i;j>=1;j--)
			{
				if(a[j-1].au!=a[i].au){ai=j;break;}
			}
		}
		if(c[i].id==id)
		{
			for(int j=i;j>=1;j--)
			{
				if(c[j-1].cu!=c[i].cu){ci=j;break;}
			}
		}
		if(b[i].id==id)
		{
			for(int j=i;j>=1;j--)
			{
				if(b[j-1].ag!=b[i].ag){bi=j;break;}
			}
		}
		if(ai!=0 and bi!=0 and ci!=0)break;
	}
	cout<<min(ai,min(bi,ci));
}
inline bool cmpa(node a,node b)
{
	if(a.au!=b.au)
		return a.au>b.au;
	return a.id<b.id;
}
inline bool cmpb(node1 a,node1 b)
{
	if(a.ag!=b.ag)
		return a.ag>b.ag;
	return a.id<b.id;
}
inline bool cmpc(node2 a,node2 b)
{
	if(a.cu!=b.cu)
		return a.cu>b.cu;
	return a.id<b.id;
}
signed main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	//cerr<<;
	cin>>n;
	for(register int i=1;i<=n;i++)
	{
		cin>>a[i].au>>b[i].ag>>c[i].cu;
		a[i].id=i;
		b[i].id=i;
		c[i].id=i;
	}
	sort(a+1,a+1+n,cmpa);
	sort(b+1,b+1+n,cmpb);
	sort(c+1,c+1+n,cmpc);
	for(int i=1;i<=n;i++)
	{
		solve(i);
		puts("");
	}
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}
2024/10/13 12:37
加载中...