Cod sursa(job #1904991)

Utilizator alexandra_paticaAndreea Alexandra Patica alexandra_patica Data 5 martie 2017 21:08:18
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#include <deque>
using namespace std;

int n, i, a[5000001], k;
long long s;
deque<int>c;

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]);


    for (i=1; i<=n; i++){
        while (!c.empty() && a[i]<=a[c.back()]) c.pop_back();
        c.push_back(i);
        if (c.front()==i-k) c.pop_front();
        if (i>=k) s+=a[c.front()];
    }
    printf("%lld", s);
    return 0;
}