Cod sursa(job #2749860)

Utilizator AndreiKatsukiAndrei Dogarel AndreiKatsuki Data 8 mai 2021 17:42:34
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>

using namespace std; 

const int NMAX=5e6+5;

ifstream f("deque.in");
ofstream g("deque.out");

long long n, k, a[NMAX], sol;

int main(){
    f >> n >> k;
    for(int i=1;i<=n;++i){
        f >> a[i];
    }
    deque<int> dq;
    for(int i=1;i<=n;++i){
        while(!dq.empty() && dq.front()<i-k+1){
            dq.pop_front();
        }
        while(!dq.empty() && a[i]<=a[dq.back()]){
            dq.pop_back();
        }
        dq.push_back(i);
        if(i>=k){
            sol+=a[dq.front()];
        }
    }
    g << sol;
    return 0;
}