Cod sursa(job #407502)

Utilizator hasegandaniHasegan Daniel hasegandani Data 2 martie 2010 13:18:41
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>

#define Nmax 5000005

int deq[Nmax],st,dr,N,K,A[Nmax];
long long Sum;

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d%d",&N,&K);
    st=1 , dr=0;
    for(int i=1;i<=N;++i)
        {
        scanf("%d ",&A[i]);

        while(st<=dr && A[deq[dr]] > A[i]) --dr;
        deq[++dr]=i;

        if (deq[st] == i-K)
            ++st;

        if (i>=K)
            Sum += A[deq[st]];
        }
    printf("%lld\n",Sum);
    return 0;
}