Cod sursa(job #2041660)

Utilizator dragosQQCirtorosan Dragos dragosQQ Data 17 octombrie 2017 17:56:34
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <cstdio>
#include <deque>
#define mx 5000001

using namespace std;

deque <int> coada;
int a[mx],k,suma;


int main (){
    ///freopen("deque.in","r",stdin);
    int i,n;
    cin>>n>>k;
    for (i=0;i<n;i++) cin>>a[i];

    for (i=0; i<n; i++){
        while ((!coada.empty()) && (a[i]<a[coada.back()]))
            coada.pop_back();
        coada.push_back(i);
        if (coada.front() <= i-k) coada.pop_front();
        if (i >= k-1) suma+=a[coada.front()];
    }
    cout<<suma;
    return 0;
}