Cod sursa(job #2938145)

Utilizator vlad_maneaManea Vlad Cristian vlad_manea Data 11 noiembrie 2022 18:28:58
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

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

deque<int> D;

int n, k, a[5000001];
long long sum;

void citire() {
    fin>>n>>k;
    for (int i=0; i<n; i++)
        fin>>a[i];
}

void parcurgere() {
    D.push_back(0);
    for (int i=1; i<n; i++) {
        while (a[i]<=a[D.back()] && !D.empty())
            D.pop_back();
        D.push_back(i);
        if (D.front()<=i-k)
            D.pop_front();
        if (i>=k-1)
            sum+=a[D.front()];
    }
}

int main() {
    citire();
    parcurgere();
    fout<<sum;
    return 0;
}