#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;
}
这破二分,为什么所有样例都过不了!查了一个小时了!求助谢谢!