Cod sursa(job #2725675)

Utilizator preda.andreiPreda Andrei preda.andrei Data 19 martie 2021 15:00:43
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdint>
#include <deque>
#include <fstream>

using namespace std;

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

    int n, k;
    fin >> n >> k;

    int64_t total = 0;
    deque<pair<int64_t, int>> deq;

    for (auto i = 0; i < n; i += 1) {
        int64_t value;
        fin >> value;

        while (!deq.empty() && deq.back().second <= i - k) {
            deq.pop_back();
        }
        while (!deq.empty() && deq.front().first >= value) {
            deq.pop_front();
        }
        deq.push_front({value, i});

        if (i >= k - 1) {
            total += deq.back().first;
        }
    }

    fout << total << "\n";
    return 0;
}