昨晚 CF 1A,为什么挂了?
  • 板块学术版
  • 楼主bmatrix
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/1 11:23
  • 上次更新2024/5/1 15:03:00
查看原帖
昨晚 CF 1A,为什么挂了?
393767
bmatrix楼主2024/5/1 11:23

感觉跟官解做法是一样的啊

已 define int long long,assert 也没有问题

constexpr 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;
}
2024/5/1 11:23
加载中...