Cod sursa(job #2022371)

Utilizator Alex18maiAlex Enache Alex18mai Data 16 septembrie 2017 13:46:24
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <deque>

using namespace std;

ifstream cin("deque.in");
ofstream cout("deque.out");

long long nr[5000500];
deque <int> D;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    long long cont = 0;
    int n, k;
    cin>>n>>k;
    for (int i=1; i<=n; i++){
        cin>>nr[i];
    }
    for (int i=1; i<=k; i++){
            while(!D.empty() && nr[D.front()] > nr[i]){
                D.pop_front();
            }
        D.push_front(i);
    }
    cont += nr[D.back()];
    for (int i=k+1; i<=n; i++){
            while(!D.empty() && nr[D.front()] > nr[i]){
                D.pop_front();
            }
        D.push_front(i);
        if (D.back() <= i - k){
            D.pop_back();
        }
        cont += nr[D.back()];
    }
    cout<<cont;
    return 0;
}