Cod sursa(job #3123455)

Utilizator radustn92Radu Stancu radustn92 Data 23 aprilie 2023 20:13:13
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int N, K;

int main() {
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);

    cin >> N >> K;
    deque<pair<int, int>> dq;
    int no;
    long long result = 0;
    for (int idx = 0; idx < N; idx++) {
        if (!dq.empty() && dq.front().second <= idx - K) {
            dq.pop_front();
        }

        cin >> no;
        while (!dq.empty() && dq.back().first >= no) {
            dq.pop_back();
        }
        dq.push_back({no, idx});

        if (idx >= K - 1) {
            result += dq.front().first;
        }
    }
    cout << result << "\n";
    return 0;
}