Cod sursa(job #2204140)

Utilizator GarboteialexGarbotei Alex Garboteialex Data 14 mai 2018 18:57:51
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

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

    int ans = 0;

    deque < pair < int, int > > minDq;
    for(int i = 1; i <= n; i++) {
        int crEl;
        fin >> crEl;

        while(!minDq.empty() && minDq.back().first >= crEl) {
            minDq.pop_back();
        }

        if(!minDq.empty() && minDq.front().second <= i - k) {
            minDq.pop_front();
        }

        minDq.push_back(make_pair(crEl, i));

        if(i >= k) {
            ans += minDq.front().first;
        }
        
    }

    fout << ans;
}