Cod sursa(job #2767679)

Utilizator DayanamdrMardari Dayana Raluca Dayanamdr Data 7 august 2021 13:23:13
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;

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

long long int ans;

int main() {
    int n, k, elem;
    f >> n >> k >> elem;

    deque<pair<int, int>> minimumElem;
    minimumElem.push_back({1, elem});

    for (int i = 2; i <= n; ++i) {
        f >> elem;
        while (minimumElem.size() > 0 && minimumElem.back().second > elem) {
            minimumElem.pop_back();
        }
        minimumElem.push_back({i, elem});

        if (i >= k) {
           ans += (long long int)minimumElem.front().second;
           if (minimumElem.front().first == i - k + 1) {
                minimumElem.pop_front();
           }
        }
    }
    g << ans;
    return 0;
}