110232024-06-15 23:09:32matekimado11Pontos átlag 2cpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva2ms356 KiB
2Elfogadva3ms416 KiB
subtask210/10
3Elfogadva3ms508 KiB
4Elfogadva3ms532 KiB
5Elfogadva3ms664 KiB
6Elfogadva3ms520 KiB
7Elfogadva3ms356 KiB
8Elfogadva2ms356 KiB
subtask320/20
9Elfogadva46ms1636 KiB
10Elfogadva45ms1520 KiB
11Elfogadva43ms1412 KiB
12Elfogadva43ms1568 KiB
13Elfogadva46ms1512 KiB
14Elfogadva45ms1440 KiB
15Elfogadva45ms1784 KiB
16Elfogadva45ms1552 KiB
17Elfogadva3ms356 KiB
subtask424/24
18Elfogadva3ms428 KiB
19Elfogadva3ms656 KiB
20Elfogadva3ms616 KiB
21Elfogadva3ms384 KiB
22Elfogadva3ms376 KiB
23Elfogadva3ms484 KiB
24Elfogadva3ms376 KiB
25Elfogadva3ms500 KiB
26Elfogadva3ms504 KiB
27Elfogadva3ms356 KiB
28Elfogadva3ms360 KiB
subtask546/46
29Elfogadva46ms1600 KiB
30Elfogadva68ms1948 KiB
31Elfogadva48ms1676 KiB
32Elfogadva67ms2192 KiB
33Elfogadva86ms2848 KiB
34Elfogadva92ms3228 KiB
35Elfogadva98ms3300 KiB
36Elfogadva100ms3044 KiB
37Elfogadva111ms3116 KiB
38Elfogadva86ms2752 KiB
39Elfogadva35ms1380 KiB
40Elfogadva4ms632 KiB
41Elfogadva3ms504 KiB