Cod sursa(job #2930402)

Utilizator DKMKDMatei Filibiu DKMKD Data 28 octombrie 2022 12:59:32
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NM = 5e6 + 5;

int n, k, a[NM];
deque<int>dq;
long long ans = 0;

int main() {
    fin >> n >> k;
    for (int i = 1; i <= n; i++) {
        fin >> a[i];
        while (!dq.empty() && a[i] <= a[dq.back()]) {
            dq.pop_back();
        }
        dq.push_back(i);
        if (i >= k) {
            ans += a[dq.front()];
            if (i - dq.front() + 1 >= k) {
                dq.pop_front();
            }
        }
    }
    fout << ans;
    return 0;
}