二分 70 求调
查看原帖
二分 70 求调
1286053
Nostopathy楼主2025/7/28 14:22
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define pb push_back
#define rep(a, b, c, d) for(int a=b; a<=c; a+=d)
const int N = 1e6 + 5;
int n, k, a[N], l = 1, r;
signed main () {
	cin >> n >> k;
	rep(i, 1, n, 1)
		cin >> a[i], r = max(r, a[i]);
	++ r;
	int res = 0;
	while(l <= r) {
		int m = (l + r) >> 1;
		int tot = 0;
		rep(i, 1, n, 1) {
			if(a[i] <= m) {
				tot += m - a[i] + 1;
				if(tot > m * k)
					break;
			}
		}
		if(tot <= m * k)
			res = m, l = m + 1;
		else
			r = m - 1;
	}
	cout << res;
	return 0;
}
2025/7/28 14:22
加载中...