Cod sursa(job #3141736)

Utilizator AndreiPaval03Andrei Paval AndreiPaval03 Data 15 iulie 2023 22:37:57
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

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

    int n; fin >> n;
    int k; fin >> k;
    vector<int> v(n + 1);
    deque<int> dq;
    for (int i = 1; i < k; ++i) {
        fin >> v[i];
        while (dq.size() > 0 && v[dq.back()] >= v[i]) {
            dq.pop_back();
        }
        dq.push_back(i);
    }


    long long s = 0;
    for (int i = k; i <= n; ++i) {
        fin >> v[i];
        while (dq.size() > 0 && v[dq.back()] >= v[i]) {
            dq.pop_back();
        }
        dq.push_back(i);
        s += v[dq.front()];
        if (dq.front() == i - k + 1) {
            dq.pop_front();
        }
    }

    fout << s;

    return 0;
}