Cod sursa(job #1004625)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 3 octombrie 2013 12:15:32
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>

int n,k,a[5000010], deq[5000010],i,s,e;
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", &a[i]);
    s=1;e=0;
    for(i=1;i<=n;i++)
    {
        while(e>=s && a[i]<=a[deq[e]])
            e--;
        e++;
        deq[e]=i;
        if(deq[s]==i-k)
            s++;
        if(i>=k)
            sum+=a[deq[s]];
    }
    printf("%lld\n", sum);
    return 0;
}