Cod sursa(job #3216586)

Utilizator george-rotariuRotariu George george-rotariu Data 18 martie 2024 11:03:35
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <deque>

using namespace std;

struct numar {
    long long int val, poz;
};

long long int n, k, i, x, total_sum = 0;
deque<numar> dq;
numar aux;

int main () {
    cin >> n >> k;
    for (i = 0; i < k; i++) {
        cin >> x;
        aux.val = x;
        aux.poz = i;
        while (dq.size() > 0 && aux.val < dq.back().val) {
            dq.pop_back();
        }
        dq.push_back(aux);
    }

    for (; i < n; i++) {
        total_sum += dq.front().val;
        
        if (dq.front().poz + k == i)
            dq.pop_front();
           
        cin >> x;
        aux.val = x;
        aux.poz = i;
        while (dq.size() > 0 && aux.val < dq.back().val) {
            dq.pop_back();
        }
        dq.push_back(aux);
    }
    total_sum += dq.front().val;

    cout << total_sum << '\n';
    return 0;
}