求助c++,二分答案70分!!!
查看原帖
求助c++,二分答案70分!!!
354177
王浩博楼主2021/2/1 18:51

求助c++,二分答案70分!!!


错的三个点全是read到0。。。

#include<iostream>
#include<algorithm>
using namespace std;

typedef long long ll;
ll n,m,a[10000005],ans;
bool ok(ll x){
	int ret=0;
	for(int i=1;i<=n;i++){
		if((a[i]-x)>0){
			ret+=a[i]-x;
		}
	}
	if(ret<m){
		return 0;
	}
	else{
		return 1;
	}
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+1+n);
	ll l=a[1];
	ll r=a[n]+1;
	ll mid;
	while(l<=r){
		mid=(l+r)>>1;
		if(ok(mid)){
			l=mid+1;
			ans=mid;
		}else{
			r=mid-1;
		}
	}
	cout<<ans<<endl;
	return 0;
}

求助orz

2021/2/1 18:51
加载中...