Cod sursa(job #1902928)

Utilizator 1475369147896537415369Andrei Udriste 1475369147896537415369 Data 4 martie 2017 20:58:58
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
#include <deque>
using namespace std;

int N, K, A[5000001], i;
long long Sum;
deque<int> D;

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 (A[i] <= A[D.back()]) D.pop_back();
        D.push_back(i);
        if (D.front() == i-K) D.pop_front();
        if (i >= K) Sum += A[D.front()];
    }
    printf("%lld", Sum);
    return 0;
}