求助!样例过了但10pts
查看原帖
求助!样例过了但10pts
1436267
I_Love_Codm楼主2025/1/23 00:46
#include <iostream>
#define ll long long
using namespace std;

const int maxn = 1e6 + 10;
ll n, m, tree[maxn];

bool check(ll len) {
	ll sum = 0;
	for(int i = 0; i < n; i++) if(tree[i] > len) sum += tree[i] - len;
	return sum <= m;
}

ll l, r, ma = -1;
int main() {
	cin >> n >> m;
	for(int i = 0; i < n; i++) cin >> tree[i], ma = max(ma, tree[i]);
	
	r = m;
	while(l < r) {
		ll mid = (l + r) >> 1;
		if(check(mid)) r = mid;
		else l = mid + 1;
	}
	
	cout << l;
	return 0;
}
2025/1/23 00:46
加载中...