0分求调
  • 板块P11185 奖牌排序
  • 楼主syy999
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/24 19:39
  • 上次更新2024/10/24 20:33:24
查看原帖
0分求调
1373929
syy999楼主2024/10/24 19:39
#include<bits/stdc++.h>
using namespace std;
int g[200005],s[200005],b[200005],g2[200005],s2[200005],b2[200005],n;
int f(int x,int key){
	int ans;
	if(x==1){
		int l=0,r=n,m;
		while(r-l>1){
			m=(l+r)/2;
			if(g2[m]>key){
				r=m-1;
			}else l=m;
		}
		ans=l;
	}else if(x==2){
		int l=0,r=n,m;
		while(r-l>1){
			m=(l+r)/2;
			if(s2[m]>key){
				r=m-1;
			}else l=m;
		}
		ans=l;
	}else if(x==3){
		int l=0,r=n,m;
		while(r-l>1){
			m=(l+r)/2;
			if(b2[m]>key){
				r=m-1;
			}else l=m;
		}
		ans=l;
	}
	return n-ans+1;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>g[i]>>s[i]>>b[i];
		g2[i]=g[i];
		s2[i]=s[i];
		b2[i]=b[i]; 
	}
	sort(g2+1,g2+1+n);
	sort(s2+1,s2+1+n);
	sort(b2+1,b2+1+n);
	for(int i=1;i<=n;i++){
		int a=min(f(1,g[i]),min(f(2,s[i]),f(3,b[i])));
		cout<<a<<endl;
	}
	return 0;
} 
2024/10/24 19:39
加载中...