Cod sursa(job #1632033)

Utilizator andreiskiorAndrei Cristian Nastase andreiskior Data 5 martie 2016 21:03:05
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>

int b,e;
int v[5000001];
int dq[5000001];

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    int n,k,i,j;
    long long sum = 0;
    scanf("%d %d\n",&n,&k);
    for(i = 1; i <= n; ++i)
        scanf("%d",&v[i]);
    b = 0; e = 0;
    for(i = 1; i <= n; ++i)
    {
        while(b <= e && v[dq[e]] >= v[i])
            --e;
        dq[++e] = i;
        if(dq[b] == i - k)
            ++b;
        if(i >= k)
            sum += v[dq[b]];
    }
    printf("%lld\n",sum);
    return 0;
}