7497 2024. 01. 09 11:03:44 Ablablabla Sípálya (55 pont) cpp14 Elfogadva 55/55 98ms 21768 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef pair<ll, ll> pii;

const ll INF = 4e18 + 7;

ll ind = 0;

struct comp{
    bool operator()(pii a, pii b){
        ll c = a.first + a.second - ind;
        ll d = b.first + b.second - ind;

        return c < d;
    }
};

int main()
{
    ll n, k;
    cin >> n >> k;

    vector<ll> hegyek(n, 0);

    for(ll i = 0; i < n; i++){
        cin >> hegyek[i];
    }

    vector<ll> pref(n + 1, 0);
    for(ll i = 1; i <= n; i++){
        pref[i] = pref[i - 1] + hegyek[i - 1];
    }

    vector<ll> kezdo(n, 0);
    priority_queue<pii, vector<pii>, comp> sorrend;

    for(ll i = 0; i < k; i++){
        sorrend.push({hegyek[i], i});
    }

    for(ll i = 0; i + k - 1 < n; i++){
        ind = i;
        sorrend.push({hegyek[i + k - 1], i + k - 1});
        while(sorrend.top().second < i){
            sorrend.pop();
        }

        ll kesobb = sorrend.top().second - i;
        kezdo[i] = sorrend.top().first + kesobb;
    }

    ll mini = INF;
    for(ll i = 0; i + k - 1 < n; i++){
        ll koltseg = (kezdo[i] + kezdo[i] - k + 1) * k / 2 - (pref[i + k] - pref[i]);
        mini = min(mini, koltseg);
    }
    cout << mini << "\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1808 KiB
2 Elfogadva 0/0 3ms 2152 KiB
3 Elfogadva 2/2 3ms 2320 KiB
4 Elfogadva 2/2 3ms 2676 KiB
5 Elfogadva 2/2 3ms 2788 KiB
6 Elfogadva 2/2 3ms 2876 KiB
7 Elfogadva 3/3 3ms 2808 KiB
8 Elfogadva 1/1 7ms 3856 KiB
9 Elfogadva 1/1 7ms 4080 KiB
10 Elfogadva 1/1 7ms 4036 KiB
11 Elfogadva 1/1 7ms 3668 KiB
12 Elfogadva 1/1 7ms 3928 KiB
13 Elfogadva 1/1 7ms 3976 KiB
14 Elfogadva 2/2 7ms 3932 KiB
15 Elfogadva 2/2 7ms 4192 KiB
16 Elfogadva 2/2 92ms 17168 KiB
17 Elfogadva 2/2 86ms 21276 KiB
18 Elfogadva 2/2 86ms 21212 KiB
19 Elfogadva 3/3 86ms 21260 KiB
20 Elfogadva 2/2 89ms 21192 KiB
21 Elfogadva 2/2 90ms 21212 KiB
22 Elfogadva 2/2 92ms 21192 KiB
23 Elfogadva 2/2 90ms 21192 KiB
24 Elfogadva 2/2 98ms 21192 KiB
25 Elfogadva 2/2 89ms 21388 KiB
26 Elfogadva 2/2 87ms 21332 KiB
27 Elfogadva 2/2 86ms 21568 KiB
28 Elfogadva 3/3 86ms 21564 KiB
29 Elfogadva 3/3 86ms 21584 KiB
30 Elfogadva 3/3 87ms 21768 KiB