45pts,二分查找,剩下全WA,玄关
查看原帖
45pts,二分查找,剩下全WA,玄关
771125
wheat__楼主2024/10/13 16:09
#include<bits/stdc++.h>
using namespace std;
int n;
int g[200010],s[100010],b[100010];
int g1[200010],s1[100010],b1[100010];
int find(int h,int k[]){
	int l=1,r=n;
	int mid;
	while(l<=r){
		mid=(l+r)/2;
		if(k[mid]>h)r=mid-1;
		else if(k[mid]<=h)l=mid+1;
	}return l-1;
}
int main(){
	ios::sync_with_stdio(0),cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>g[i]>>s[i]>>b[i];
		g1[i]=g[i],s1[i]=s[i],b1[i]=b[i];
	}
	sort(g1+1,g1+n+1);
	sort(s1+1,s1+n+1);
	sort(b1+1,b1+n+1);
	for(int i=1;i<=n;i++){
		int r1=n-(find(g[i],g1))+1;
		int r2=n-(find(s[i],s1))+1;
		int r3=n-(find(b[i],b1))+1;
		cout<<min((r1,r2),r3)<<endl;		
	}
} 

样例能过,不知道哪里错了,求助

2024/10/13 16:09
加载中...