Cod sursa(job #1601122)

Utilizator stefan.friptuPetru Stefan Friptu stefan.friptu Data 15 februarie 2016 19:03:50
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <cstdio>

int n,k,i,x[5000005],d[5000005],p=1,u=0;
long long s;

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]);
        while (p<=u && x[i]<x[d[u]])
            u--;
        d[++u]=i;
        if (i>=k)
        {
            if (d[p]<i-k+1) p++;
            s=s+x[d[p]];
        }
    }
    printf("%lld\n",s);
    return 0;
}