89pts玄关求助
查看原帖
89pts玄关求助
772875
RAY091016楼主2025/2/3 21:03

rt。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[500500],b[500500],c[500500];
bool check(int x){
	for(int i=1;i<=n;i++){
		c[i]=b[i];
	}
	for(int i=1;i<x;i++){
		if(c[i]!=c[x]){
			c[x]+=c[i];
		}
		else{
			return false;
		}
	}
	for(int i=x+1;i<=n;i++){
		if(c[x]>c[i]){
			c[x]+=c[i];
		}
		else{
			return false;
		}
	}
	return true;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		b[i]=a[i];
	}
	sort(b+1,b+1+n);
	int l=1,r=n;
	while(l<r){
		int mid=(l+r)/2;
		if(check(mid)){
			r=mid;
		}
		else{
			l=mid+1;
		}
	}
	int minn=b[l];
	for(int i=1;i<=n;i++){
		if(a[i]>=minn){
			cout<<"T";
		}
		else{
			cout<<"N";
		}
	}
	return 0;
}

2025/2/3 21:03
加载中...