218862026-01-14 09:56:08hunzombiSípálya (55 pont)python3Futási hiba 0/5517ms3048 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

ll calcSum(ll m, ll p, ll k, ll i) {
    ll res = m * k;
    res -= (i - p) * (i - p + 1) / 2;
    res += (k + p - i - 1) * (k + p - i) / 2;
    return res;
}

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

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

    vector<ll> vec(n);
    unordered_map<ll, ll> last;
    last.reserve(n);

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

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

    for (ll i=0; i < k - 1; i++) {
        ms.insert(vec[i]);
        last[vec[i]] = i;
        curr += vec[i];
    }

    for (ll i=k-1; i < n; i++) {
        ms.insert(vec[i]);
        last[vec[i]] = i;
        curr += vec[i];

        ll max_val = *ms.rbegin();
        ll max_idx = last[max_val];

        ans = min(ans, calcSum(max_val, max_idx, k, i) - curr);

        if (last[vec[i - k + 1]] == i - k + 1) {
            ms.erase(vec[i - k + 1]);
        }
        curr -= vec[i - k + 1];
    }

    cout << ans << '\n';

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/55
1Futási hiba0/016ms2944 KiB
2Futási hiba0/016ms2868 KiB
3Futási hiba0/217ms2872 KiB
4Futási hiba0/216ms2868 KiB
5Futási hiba0/216ms2868 KiB
6Futási hiba0/216ms2868 KiB
7Futási hiba0/316ms2888 KiB
8Futási hiba0/116ms2856 KiB
9Futási hiba0/116ms2888 KiB
10Futási hiba0/114ms2864 KiB
11Futási hiba0/114ms2912 KiB
12Futási hiba0/114ms2868 KiB
13Futási hiba0/116ms3040 KiB
14Futási hiba0/216ms2932 KiB
15Futási hiba0/216ms2880 KiB
16Futási hiba0/214ms2868 KiB
17Futási hiba0/216ms2996 KiB
18Futási hiba0/216ms2868 KiB
19Futási hiba0/316ms2868 KiB
20Futási hiba0/216ms2868 KiB
21Futási hiba0/216ms3040 KiB
22Futási hiba0/216ms3048 KiB
23Futási hiba0/214ms2892 KiB
24Futási hiba0/214ms2888 KiB
25Futási hiba0/214ms2996 KiB
26Futási hiba0/216ms3024 KiB
27Futási hiba0/216ms3044 KiB
28Futási hiba0/316ms2864 KiB
29Futási hiba0/316ms2956 KiB
30Futási hiba0/316ms2864 KiB