社区讨论
昨晚 CF 1A,为什么挂了?
学术版参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lvn98frw
- 此快照首次捕获于
- 2024/05/01 11:25 2 年前
- 此快照最后确认于
- 2024/05/01 15:03 2 年前
感觉跟官解做法是一样的啊
已 define int long long,assert 也没有问题
CPPconstexpr int N = 2e5 + 5;
int n, k, a[N];
void mian() {
cin >> n >> k;
rep(i, 1, n) cin >> a[i];
sort(a + 1, a + n + 1);
int l = 0, r = 1e18;
while(l < r) {
int mid = (l + r + 1) >> 1;
int res = 0;
rep(i, 1, n) if(a[i] < mid) res += mid - a[i];
if(res <= k) l = mid;
else r = mid - 1;
}
rep(i, 1, n) if(a[i] < l)
k -= l - a[i], a[i] = l;
int cnt = count(a + 1, a + n + 1, a[1]);
assert(k >= 0 && k < cnt);
assert(is_sorted(a + 1, a + n + 1));
cnt -= k;
cout << n * a[1] + n - cnt - n + 1 << endl;
rep(i, 1, n) a[i] = 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...