70分求助
查看原帖
70分求助
322437
xxxalq楼主2023/7/13 11:01
#include<iostream>
using namespace std;
int n;
long long m,a[1000010];
int f(long long x){
	long long s=0;
	for(int i=1;i<=n;i++){
		if(a[i]-x>0){
			s+=a[i]-x;
		}
	}
	return s;
}
int main(){
	cin>>n>>m;
	long long maxx=0;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]>maxx){
			maxx=a[i];
		}
	}
	long long l=1,r=maxx,mid;
	while(l<r){
		mid=(l+r+1)/2;
		if(f(mid)<m){
			r=mid-1;
		}else{
			l=mid;
		}
	}
	cout<<l<<endl;
	return 0;
}
2023/7/13 11:01
加载中...