43332023-03-25 11:03:05thetuberbeeSípálya (55 pont)cpp17Elfogadva 55/55115ms21212 KiB
#include <bits/stdc++.h>

using namespace std;

int main ()
{
    int n, k;
    cin >> n >> k;
    vector<long long> vec(n);
    for (int i = 0; i < n; i++) {
        cin >> vec[i];
        vec[i] += i;
    }
    multiset<long long> maxset;
    long long sum = 0;
    for (int i = 0; i < k; i++) {
        sum += vec[i];
        maxset.insert(vec[i]);
    }
    //for (auto x : maxset) cout << x << " ";
    //cout << "\n";
    long long mincost = INT64_MAX;
    for (int i = k - 1; i < n; i++) {
        if (i >= k) {
            sum -= vec[i - k];
            sum += vec[i];
            maxset.erase(maxset.find(vec[i - k]));
            maxset.insert(vec[i]);
        }
        auto it = maxset.end();
        it--;
        long long localmax = *it;
        long long cost = k * localmax - sum;
        if (cost < mincost) {
            mincost = cost;
        }
        /*cout << localmax << " " << sum << " " << cost << "\nset: ";
        for (long long x : maxset) {
            cout << x << " ";
        }
        cout << "\n";*/
    }
    cout << mincost;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/03ms1688 KiB
2Elfogadva0/03ms1844 KiB
3Elfogadva2/23ms2100 KiB
4Elfogadva2/23ms2312 KiB
5Elfogadva2/23ms2528 KiB
6Elfogadva2/23ms2664 KiB
7Elfogadva3/33ms2632 KiB
8Elfogadva1/18ms2964 KiB
9Elfogadva1/18ms2992 KiB
10Elfogadva1/18ms3380 KiB
11Elfogadva1/18ms3428 KiB
12Elfogadva1/18ms3596 KiB
13Elfogadva1/18ms4040 KiB
14Elfogadva2/28ms4168 KiB
15Elfogadva2/27ms3964 KiB
16Elfogadva2/2108ms7660 KiB
17Elfogadva2/2112ms16456 KiB
18Elfogadva2/2114ms17448 KiB
19Elfogadva3/3112ms21212 KiB
20Elfogadva2/2112ms8864 KiB
21Elfogadva2/2109ms8812 KiB
22Elfogadva2/2111ms8800 KiB
23Elfogadva2/2111ms8276 KiB
24Elfogadva2/2115ms8408 KiB
25Elfogadva2/2112ms9292 KiB
26Elfogadva2/2112ms9716 KiB
27Elfogadva2/2112ms10016 KiB
28Elfogadva3/3112ms9972 KiB
29Elfogadva3/3112ms10488 KiB
30Elfogadva3/3114ms11008 KiB