Cod sursa(job #660161)

Utilizator soriynSorin Rita soriyn Data 11 ianuarie 2012 20:09:05
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<cstdio>
#define maxn 5000005
int n,k;
int d[maxn],A[maxn];
int front=1,back=0;
long long s;


int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);

    scanf("%d %d",&n,&k);
    int cur;
    for(int i=1;i<=n;i++)
        scanf("%d",&A[i]);

    for(int i=1;i<=n;i++)
    {
        while(front<=back && A[d[back]]>=A[i])back--;
        d[++back]=i;

        if(d[front]+k==i) front++;

        if(k<=i) s+=A[d[front]];
    }
    printf("%lld",s);
}