Cod sursa(job #959834)

Utilizator cousin.batmanVaru Batman cousin.batman Data 8 iunie 2013 23:24:45
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<deque>
using namespace std;

int main(){
    int n, k, i, x;
    freopen("deque.in", "rt", stdin);
    //freopen("deque.out", "wt", stdout);

    scanf("%d %d", &n, &k);
    deque< pair<int, int> > dq;
    long long sum =0;
        
    for(i=0; i<n; i++){
        scanf("%d", &x);

        while(dq.size()>0 && (x<dq.back().first || dq.back().second+k-1<i))
            dq.pop_back();
        while(dq.size()>0 && dq.front().second+k-1<i)
            dq.pop_front();

        dq.push_back(make_pair(x,i));
        if(i>=k-1)
            sum+=dq.front().first;
    }
    printf("%lld\n", sum);

    fclose(stdin);
    fclose(stdout);
    return 0;
}