116322024-11-02 10:04:37MagyarKendeSZLGPontos átlag 2cpp17Hibás válasz 10/10041ms1860 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);

    if (goal == avg) {
        cout << "0\n";
        exit(0);
    }

    auto f = [&](int c) -> bool {
        if (goal == avg) { return 1; }
        if (goal > avg) { 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 = 1e18;
    while (r - l > 1) {
        int m = (r + l) / 2;
        if (f(m)) {
            r = m;
        } else {
            l = m;
        }
    }

    cout << r << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms320 KiB
2Elfogadva1ms320 KiB
subtask210/10
3Elfogadva1ms320 KiB
4Elfogadva1ms320 KiB
5Elfogadva1ms320 KiB
6Elfogadva1ms320 KiB
7Elfogadva1ms320 KiB
8Elfogadva1ms320 KiB
subtask30/20
9Hibás válasz16ms1848 KiB
10Elfogadva27ms1848 KiB
11Elfogadva14ms1848 KiB
12Elfogadva27ms1848 KiB
13Hibás válasz16ms1848 KiB
14Elfogadva28ms1848 KiB
15Elfogadva27ms1848 KiB
16Elfogadva27ms1848 KiB
17Hibás válasz1ms320 KiB
subtask40/24
18Elfogadva1ms320 KiB
19Elfogadva1ms344 KiB
20Elfogadva1ms320 KiB
21Elfogadva1ms320 KiB
22Elfogadva1ms500 KiB
23Hibás válasz1ms540 KiB
24Hibás válasz1ms320 KiB
25Elfogadva1ms508 KiB
26Elfogadva1ms508 KiB
27Elfogadva1ms320 KiB
28Hibás válasz1ms508 KiB
subtask50/46
29Elfogadva27ms1848 KiB
30Elfogadva32ms1848 KiB
31Elfogadva20ms1080 KiB
32Hibás válasz20ms1596 KiB
33Elfogadva37ms1848 KiB
34Elfogadva39ms1848 KiB
35Elfogadva28ms1848 KiB
36Elfogadva41ms1848 KiB
37Elfogadva41ms1848 KiB
38Hibás válasz26ms1860 KiB
39Elfogadva14ms828 KiB
40Elfogadva2ms320 KiB
41Hibás válasz1ms320 KiB