218892026-01-14 09:58:26hunzombiSípálya (55 pont)cpp17Hibás válasz 24/5582ms13064 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] + i);
        last[vec[i] + i] = i;
        curr += vec[i];

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

        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/01ms316 KiB
2Hibás válasz0/01ms512 KiB
3Hibás válasz0/22ms500 KiB
4Hibás válasz0/22ms316 KiB
5Elfogadva2/22ms492 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/32ms316 KiB
8Hibás válasz0/14ms876 KiB
9Hibás válasz0/14ms1080 KiB
10Elfogadva1/14ms1076 KiB
11Hibás válasz0/14ms844 KiB
12Hibás válasz0/14ms820 KiB
13Hibás válasz0/14ms832 KiB
14Elfogadva2/24ms820 KiB
15Hibás válasz0/24ms820 KiB
16Hibás válasz0/259ms9116 KiB
17Hibás válasz0/272ms11060 KiB
18Hibás válasz0/275ms11780 KiB
19Hibás válasz0/382ms13064 KiB
20Elfogadva2/261ms8496 KiB
21Hibás válasz0/261ms8964 KiB
22Elfogadva2/257ms8720 KiB
23Elfogadva2/257ms8396 KiB
24Hibás válasz0/264ms9524 KiB
25Elfogadva2/259ms8704 KiB
26Elfogadva2/261ms8680 KiB
27Hibás válasz0/259ms8756 KiB
28Elfogadva3/363ms8752 KiB
29Elfogadva3/363ms8740 KiB
30Elfogadva3/361ms8244 KiB