Cod sursa(job #243177)

Utilizator firewizardLucian Dobre firewizard Data 12 ianuarie 2009 11:17:32
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <stdio.h>
struct deque {long v;long p;};
long n,i,k,st,dr,x;
long long sol;
deque d[5000005];
int main()
{
    freopen ("deque.in","r",stdin);
    freopen ("deque.out","w",stdout);
    scanf("%ld %ld",&n,&k);
    st=1;dr=0;
    for (i=1;i<=n;++i){
        scanf("%ld",&x);
        while (x<d[dr].v&&dr>=st)dr--;
        d[++dr].v=x;
        d[dr].p=i;
        while (i-d[st].p+1>k)st++;
        if(i>=k)sol+=d[st].v;
        }
    printf("%lld",sol);
    return 0;
}