116332024-11-02 10:11:23MagyarKendeSZLGPontos átlag 2cpp17Accepted 100/10035ms2036 KiB
#include <iostream>
#include <numeric>
#include <vector>

using namespace std;
#define int long long

int32_t main() {
    cin.tie(0), ios::sync_with_stdio(0);

    int N, K;
    cin >> N >> K;
    vector<int> p(N);
    for (int& x : p) cin >> x;

    int goal = N * K;
    int avg = accumulate(p.begin(), p.end(), 0LL);

    auto f = [&](int c) -> bool {
        if (avg == goal) { return 1; }
        if (avg < goal) { return avg + N * c >= goal; }
        int d = 0;
        for (int x : p) { d += min(x - 1, c); }
        return avg - d <= goal;
    };

    int l = -1, r = 2e9;
    while (r - l > 1) {
        int m = (r + l) / 2;
        if (f(m)) {
            r = m;
        } else {
            l = m;
        }
    }

    cout << r << "\n";
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms320 KiB
2Accepted1ms320 KiB
subtask210/10
3Accepted1ms320 KiB
4Accepted1ms320 KiB
5Accepted1ms320 KiB
6Accepted1ms320 KiB
7Accepted1ms320 KiB
8Accepted1ms320 KiB
subtask320/20
9Accepted14ms1980 KiB
10Accepted20ms1848 KiB
11Accepted14ms1848 KiB
12Accepted20ms1848 KiB
13Accepted14ms1860 KiB
14Accepted21ms2028 KiB
15Accepted20ms1848 KiB
16Accepted20ms2036 KiB
17Accepted1ms320 KiB
subtask424/24
18Accepted1ms320 KiB
19Accepted1ms320 KiB
20Accepted1ms320 KiB
21Accepted1ms320 KiB
22Accepted1ms320 KiB
23Accepted1ms320 KiB
24Accepted1ms320 KiB
25Accepted1ms388 KiB
26Accepted1ms508 KiB
27Accepted1ms320 KiB
28Accepted1ms552 KiB
subtask546/46
29Accepted23ms1828 KiB
30Accepted28ms1848 KiB
31Accepted18ms1244 KiB
32Accepted20ms1912 KiB
33Accepted32ms1848 KiB
34Accepted32ms1848 KiB
35Accepted28ms1848 KiB
36Accepted35ms1848 KiB
37Accepted35ms1864 KiB
38Accepted26ms1848 KiB
39Accepted13ms824 KiB
40Accepted1ms320 KiB
41Accepted1ms508 KiB