Cod sursa(job #274900)

Utilizator petrePajarcu Alexandru-Petrisor petre Data 10 martie 2009 08:30:39
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
int x[5000002],v[5000002];
int n,k,i,first,last;
long long sum;

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d %d",&n,&k);

    for (i=1;i<=n;++i)
        scanf("%d",&x[i]);
    first=1;
    last=0;
    sum=0;

    for (i=1;i<=n;++i)
        {
            while ((x[i]<x[v[last]])&&(last>=first)) --last;
            ++last;
            v[last]=i;
            if (v[first]<=i-k) ++first;
            if (i>=k) sum+=x[v[first]];
        }

    printf("%lld",sum);

    fclose(stdin);
    fclose(stdout);

    return(0);

}