Cod sursa(job #2383508)

Utilizator sansRotaru Razvan Andrei sans Data 19 martie 2019 16:42:28
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>
using namespace std;
#define NMAX 5000000
deque <int> deck;
int v[NMAX+5];
int main(){

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

    int n, k;
    long long sum = 0;
    scanf("%d%d", &n, &k);
    for(int i = 1; i<=n; i++) scanf("%d", &v[i]);
    for(int i = 1; i<=n; i++){
        while((!deck.empty()) && v[i]<=v[deck.back()]) deck.pop_back();

        deck.push_back(i);

        if(deck.front() == i-k) deck.pop_front();
        if(i>=k) sum+= v[deck.front()];
    }
    printf("%lld", sum);
}