Cod sursa(job #2041661)

Utilizator dragosQQCirtorosan Dragos dragosQQ Data 17 octombrie 2017 17:58:19
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 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);
    freopen("deque.out","w",stdout);
    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;
}