社区讨论

二分 70 求调

P13500「Cfz Round 6」Kyu-kurarin参与者 6已保存回复 14

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
14 条
当前快照
1 份
快照标识符
@mdmq2fkg
此快照首次捕获于
2025/07/28 14:23
7 个月前
此快照最后确认于
2025/11/04 06:29
4 个月前
查看原帖
CPP
#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;
}

回复

14 条回复,欢迎继续交流。

正在加载回复...