74962024-01-09 10:59:40AblablablaSípálya (55 pont)cpp14Hibás válasz 11/5598ms12340 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

const int INF = 2e9 + 7;

int ind = 0;

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

        return c < d;
    }
};

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

    vector<int> hegyek(n, 0);

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

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

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

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

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

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

    int mini = INF;
    for(int i = 0; i + k - 1 < n; i++){
        int koltseg = (kezdo[i] + kezdo[i] - k + 1) * k / 2 - (pref[i + k] - pref[i]);
        mini = min(mini, koltseg);
    }
    cout << mini << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base11/55
1Elfogadva0/03ms1812 KiB
2Elfogadva0/03ms2148 KiB
3Elfogadva2/23ms2312 KiB
4Hibás válasz0/23ms2476 KiB
5Hibás válasz0/23ms2436 KiB
6Hibás válasz0/23ms2516 KiB
7Hibás válasz0/33ms2592 KiB
8Elfogadva1/17ms2976 KiB
9Elfogadva1/17ms3236 KiB
10Elfogadva1/17ms3332 KiB
11Elfogadva1/17ms2984 KiB
12Elfogadva1/17ms3032 KiB
13Hibás válasz0/17ms3300 KiB
14Elfogadva2/27ms3264 KiB
15Elfogadva2/27ms3236 KiB
16Hibás válasz0/293ms9872 KiB
17Hibás válasz0/286ms12112 KiB
18Hibás válasz0/286ms12072 KiB
19Hibás válasz0/386ms12076 KiB
20Hibás válasz0/287ms12192 KiB
21Hibás válasz0/290ms12340 KiB
22Hibás válasz0/292ms12300 KiB
23Hibás válasz0/290ms12200 KiB
24Hibás válasz0/298ms12212 KiB
25Hibás válasz0/287ms12216 KiB
26Hibás válasz0/287ms12276 KiB
27Hibás válasz0/286ms12296 KiB
28Hibás válasz0/386ms12272 KiB
29Hibás válasz0/386ms12232 KiB
30Hibás válasz0/387ms12216 KiB