求助,40分
查看原帖
求助,40分
218974
wsadjkl0楼主2021/5/24 17:01

为什么答案不是多个1就是少个1,大佬救救我┭┮﹏┭┮

#include<bits/stdc++.h>
#define ll long long
using namespace std;

ll n, m, a[1000005];
ll l, r, mid, mxh;
bool judge(ll x){
	ll ans = 0;
	for(ll j = n-1; j >= 0 && a[j] > x; j--)
		ans += a[j] - x;
	return ans >= m;
}

int main(){
	
	scanf("%d%d", &n, &m);
	for(ll i = 0; i < n; i++) scanf("%d", &a[i]);
	sort(a, a+n);
	l = 0, r = a[n-1];
	while(l+1 < r){
		mid = (l+r+1)/2;
		if(judge(mid)) l = mid;
		else r = mid;
	}
	
	printf("%lld", mid);
	return 0;
}
2021/5/24 17:01
加载中...