开了longlong也没用 不知道为什么过不了 明明二分没问题来着[哭]
查看原帖
开了longlong也没用 不知道为什么过不了 明明二分没问题来着[哭]
1813159
chenxiny123楼主2025/8/1 13:19
#include <bits/stdc++.h>
using namespace std;
long long m,n,a[1000005];
long long l,r,mid,ans = 0;
bool check(long long mid){
	long long cmp = 0;
	for(long long i = 1;i <= n; i++){
		if(a[i] >= mid)
			cmp += a[i]-mid;
	}
	if(cmp >= m)
		return 1;
	return 0;
}
int main(){
	cin >> n >> m;
	for(long long i = 1;i <= n; i++){
		cin >> a[i];
		r += a[i];
	}
	while(l < r){
		mid = (l+r)/2;
		if(check(mid) == 1){
			ans = mid;
			l = mid+1;
		}
		else
			r = mid-1;
	}
	cout << ans;
	return 0;
} ```
2025/8/1 13:19
加载中...