219272026-01-14 10:35:56hunzombiSípálya (55 pont)cpp17Accepted 55/5567ms8916 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

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

    ll n, k;
    cin >> n >> k;

    vector<ll> vec(n);

    for (ll i=0; i < n; i++) cin >> vec[i];

    multiset<ll> ms;
    ll curr = 0;
    ll ans = LLONG_MAX;

    for (int i = 0; i < n; i++) {
        ms.insert(vec[i] + i);
        curr += vec[i];

        if (i >= k) {
            auto it = ms.find(vec[i - k] + (i - k));
            if (it != ms.end()) ms.erase(it);
            curr -= vec[i - k];
        }

        if (i >= k - 1) {
            ll L = i - k + 1;
            ll H = *ms.rbegin() - L;

            ll reqHeight = k * H - k * (k - 1) / 2;
            ll cost = reqHeight - curr;
            if (cost >= 0)
                ans = min(ans, cost);
        }
    }

    cout << ans << '\n';

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms508 KiB
2Accepted0/01ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted1/14ms316 KiB
9Accepted1/14ms316 KiB
10Accepted1/14ms524 KiB
11Accepted1/14ms500 KiB
12Accepted1/13ms348 KiB
13Accepted1/14ms564 KiB
14Accepted2/24ms564 KiB
15Accepted2/24ms316 KiB
16Accepted2/259ms2336 KiB
17Accepted2/267ms6604 KiB
18Accepted2/264ms7116 KiB
19Accepted3/367ms8916 KiB
20Accepted2/263ms2772 KiB
21Accepted2/261ms2612 KiB
22Accepted2/261ms2512 KiB
23Accepted2/261ms2260 KiB
24Accepted2/261ms2508 KiB
25Accepted2/264ms2868 KiB
26Accepted2/264ms3128 KiB
27Accepted2/261ms3288 KiB
28Accepted3/363ms3380 KiB
29Accepted3/364ms3636 KiB
30Accepted3/364ms3636 KiB