Cod sursa(job #2767370)

Utilizator DayanamdrMardari Dayana Raluca Dayanamdr Data 5 august 2021 22:05:32
Problema Deque Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;

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

int v[1000001];

int main() {
    int n, k, ans = 0;
    f >> n >> k;
    for (int i = 1; i <= n; ++i) {
        f >> v[i];
    }

    deque <int> minimumEl;
    minimumEl.push_back(v[1]);

    deque <int>::reverse_iterator rev_it;
    for (int i = 2; i <= n; ++i) {
        int next_elem = v[i];
        while (minimumEl.size() > 0 && minimumEl.back() >= next_elem) {
            minimumEl.pop_back();
        }
        minimumEl.push_back(v[i]);

        if (i >= k) {
           ans += minimumEl.front();
        }

        if (v[i - k + 1] == minimumEl.front()) {
            minimumEl.pop_front();
        }
    }

    g << ans;
    return 0;
}