Cod sursa(job #1450793)

Utilizator PlatonVPlaton Vlad PlatonV Data 14 iunie 2015 18:42:18
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

#define maxn 5000003

int a[maxn], deq[maxn];
int f, b;

long long s;

int main()
{
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);

    int n,k;

    scanf("%d%d", &n, &k);

    for (int i = 1; i <= n; ++i)
        scanf("%d", &a[i]);

    f = 1;

    for (int i = 1; i <= n; ++i)
    {
        while (f <= b && a[i] <= a[deq[b]])
            --b;

        deq[++b] = i;

        if (deq[f] == i - k) f++;

        if (i >= k)
            s += a[deq[f]];
    }

    printf("%lld", s);

    return 0;
}