218402026-01-14 09:07:59hunzombiSípálya (55 pont)cpp17Futási hiba 24/5575ms15720 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), last(1e6 + 1, -1);

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

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

    for (int 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];

        int max_val = *ms.rbegin();
        int 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
base24/55
1Elfogadva0/07ms8440 KiB
2Futási hiba0/07ms8456 KiB
3Futási hiba0/28ms8504 KiB
4Futási hiba0/28ms8244 KiB
5Futási hiba0/28ms8244 KiB
6Futási hiba0/28ms8244 KiB
7Futási hiba0/37ms8272 KiB
8Hibás válasz0/110ms8520 KiB
9Hibás válasz0/110ms8340 KiB
10Hibás válasz0/110ms8480 KiB
11Elfogadva1/110ms8280 KiB
12Elfogadva1/19ms8244 KiB
13Elfogadva1/110ms8244 KiB
14Elfogadva2/210ms8500 KiB
15Elfogadva2/212ms8244 KiB
16Elfogadva2/268ms10036 KiB
17Elfogadva2/271ms14260 KiB
18Hibás válasz0/275ms14696 KiB
19Hibás válasz0/371ms15720 KiB
20Elfogadva2/268ms10548 KiB
21Elfogadva2/271ms10348 KiB
22Elfogadva2/268ms10340 KiB
23Hibás válasz0/268ms10084 KiB
24Futási hiba0/232ms9832 KiB
25Elfogadva2/268ms10600 KiB
26Hibás válasz0/271ms10864 KiB
27Elfogadva2/268ms11060 KiB
28Hibás válasz0/371ms11120 KiB
29Elfogadva3/371ms11316 KiB
30Hibás válasz0/370ms11464 KiB