Cod sursa(job #710006)

Utilizator stelutaSfiriac Bianca steluta Data 8 martie 2012 19:33:08
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<cstdio>

long n, k, i, fr, bk, dq[5000005];
long long s, a[5000005];

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

    for (i=1; i<=n; i++) scanf("%lld", &a[i]);
    fr=1; bk=0;
    for (i=1; i<=n; i++) {
        while (fr<=bk && a[i]<=a[dq[bk]]) bk--;
        bk++; dq[bk]=i;
        if (dq[fr]==i-k) fr++;
        if (i>=k) s+=a[dq[fr]];
    }
    printf("%lld", s);
    return 0;
}