Cod sursa(job #2767460)

Utilizator DayanamdrMardari Dayana Raluca Dayanamdr Data 6 august 2021 11:53:53
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <deque>
#include <queue>
#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;
    f >> elem;

    deque <int> minimumEl;
    minimumEl.push_back(elem);

    queue <int> firstElem;
    firstElem.push(elem);

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

        if (i >= k) {
           ans += (long long int)minimumEl.front();
           if (firstElem.front() == minimumEl.front()) {
                minimumEl.pop_front();
           }
           firstElem.pop();
        }
    }
    g << ans;
    return 0;
}