为什么调不过啊!求助!此题已调疯!
查看原帖
为什么调不过啊!求助!此题已调疯!
285414
Swiftie_wyc22楼主2022/12/14 16:29
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll a[100010], n, m, l, r, mid, ans;
bool check(ll high) {
	ll sum = 0;
	for (int i = 1; i <= n; i++)
		if (high < a[i]) 
			sum += a[i] - high;
	return m <= sum;
}
int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		r = max(r, a[i]);
	}
	while (l <= r) {
		mid = (l + r) / 2;
		if (check(mid)) {
			l = mid + 1;
		} else {
			r = mid - 1;
		}
	}
	cout << l << endl;
    return 0;
}

这破二分,为什么所有样例都过不了!查了一个小时了!求助谢谢!

2022/12/14 16:29
加载中...