Cod sursa(job #547419)

Utilizator cristian9Cristian Zloteanu cristian9 Data 6 martie 2011 12:33:39
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
int deque[5000001], v[5000001];
long s;
int main(){
    freopen ("deque.in", "r", stdin);
    freopen ("deque.out", "w", stdout);

    int n, i, k;

    scanf("%d %d ", &n, &k);

    for(i=1; i<=n; i++)
        scanf("%d ", &v[i]);

    int front=1, back=0;

    for(i=1; i<=n; i++){
        while(front<=back && v[i]<=v[deque[back]])
            back--;
        deque[++back]=i;
        if(deque[front]==i-k)
            front++;
        if(i>=k)
            s+=v[deque[front]];
    }

    printf("%ld ", s);

    return 0;
}