二分45分,求调
  • 板块P11185 奖牌排序
  • 楼主Em0ty
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/10/13 17:08
  • 上次更新2024/10/13 19:22:43
查看原帖
二分45分,求调
1052499
Em0ty楼主2024/10/13 17:08
#include<bits/stdc++.h>
using namespace std;
struct cd{
	int p,a,b,c;
}cl[200000];
inline bool cmp(int x,int y){
	return x<y;
}
int n;
int cl1[200000],cl2[200000],cl3[200000];
int main(){
	scanf("%d",&n);
	for(register int i=1;i<=n;i++){
		scanf("%d%d%d",&cl[i].a,&cl[i].b,&cl[i].c);
		cl1[i]=cl[i].a;
		cl2[i]=cl[i].b;
		cl3[i]=cl[i].c;
	}
	sort(cl1+1,cl1+1+n,cmp);
	sort(cl2+1,cl2+1+n,cmp);
	sort(cl3+1,cl3+1+n,cmp);
//	for(int i=1;i<=n;i++){
//		printf("%d %d %d\n",cl1[i],cl2[i],cl3[i]);
//	}
	for(register int i=1;i<=n;i++){
		int x,y,z;
		x=n-(upper_bound(cl1+1,cl1+1+n,cl[i].a)-cl1)+2;
		y=n-(upper_bound(cl2+1,cl2+1+n,cl[i].b)-cl2)+2;
		z=n-(upper_bound(cl3+1,cl3+1+n,cl[i].c)-cl3)+2;
		printf("%d\n",min(x,min(y,z)));
	}
	return 0;
}

2024/10/13 17:08
加载中...