Cod sursa(job #2932161)

Utilizator divadddDavid Curca divaddd Data 1 noiembrie 2022 23:39:44
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <deque>
#include <fstream>
#define int long long
#define MAX 5000002
using namespace std;
int n,k,v[MAX],ans;
deque<int> d;

ifstream fin("deque.in");
ofstream fout("deque.out");

signed main()
{
    fin >> n >> k;
    d.push_back(1);
    for(int i = 1; i <= n; i++){
        fin >> v[i];
        /// eliminam toate >= x de la final
        while(!d.empty() && v[d.back()] >= v[i]){
            d.pop_back();
        }
        d.push_back(i);
        if(d.front() <= i-k){
            d.pop_front();
        }
        if(i >= k){
            ans += v[d.front()];
        }
    }
    fout << ans;
    return 0;
}