110232024-06-15 23:09:32matekimado11Pontos átlag 2cpp17Accepted 100/100111ms3300 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>

using namespace std;

// Függvény, amely ellenőrzi, hogy egy adott C értékkel megvalósítható-e az elvárt átlag
bool canAchieveWithC(const vector<int>& prices, int N, int K, long long C) {
    long long min_possible_sum = 0;
    long long max_possible_sum = 0;
    for (int price : prices) {
        min_possible_sum += max(price - C, 1LL);  // Az ár nem csökkenhet 1 alá
        max_possible_sum += price + C;
    }
    long long target_sum = static_cast<long long>(N) * K;
    return min_possible_sum <= target_sum && target_sum <= max_possible_sum;
}

int main() {
    int N, K;
    cin >> N >> K;
    vector<int> prices(N);
    for (int i = 0; i < N; ++i) {
        cin >> prices[i];
    }

    // Bináris keresés a legkisebb C megtalálásához
    long long low = 0;
    long long high = 1000000000; // Nagy kezdőérték a high számára
    long long result = high;

    while (low <= high) {
        long long mid = (low + high) / 2;
        if (canAchieveWithC(prices, N, K, mid)) {
            result = mid;  // Ha lehetséges, próbáljuk meg kisebb C értékkel
            high = mid - 1;
        } else {
            low = mid + 1; // Ha nem lehetséges, növeljük C értékét
        }
    }

    cout << result << endl;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted2ms356 KiB
2Accepted3ms416 KiB
subtask210/10
3Accepted3ms508 KiB
4Accepted3ms532 KiB
5Accepted3ms664 KiB
6Accepted3ms520 KiB
7Accepted3ms356 KiB
8Accepted2ms356 KiB
subtask320/20
9Accepted46ms1636 KiB
10Accepted45ms1520 KiB
11Accepted43ms1412 KiB
12Accepted43ms1568 KiB
13Accepted46ms1512 KiB
14Accepted45ms1440 KiB
15Accepted45ms1784 KiB
16Accepted45ms1552 KiB
17Accepted3ms356 KiB
subtask424/24
18Accepted3ms428 KiB
19Accepted3ms656 KiB
20Accepted3ms616 KiB
21Accepted3ms384 KiB
22Accepted3ms376 KiB
23Accepted3ms484 KiB
24Accepted3ms376 KiB
25Accepted3ms500 KiB
26Accepted3ms504 KiB
27Accepted3ms356 KiB
28Accepted3ms360 KiB
subtask546/46
29Accepted46ms1600 KiB
30Accepted68ms1948 KiB
31Accepted48ms1676 KiB
32Accepted67ms2192 KiB
33Accepted86ms2848 KiB
34Accepted92ms3228 KiB
35Accepted98ms3300 KiB
36Accepted100ms3044 KiB
37Accepted111ms3116 KiB
38Accepted86ms2752 KiB
39Accepted35ms1380 KiB
40Accepted4ms632 KiB
41Accepted3ms504 KiB