Cod sursa(job #2979609)

Utilizator amcbnCiobanu Andrei Mihai amcbn Data 15 februarie 2023 17:02:47
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
/// [A][M][C][B][N] ///
#include <bits/stdc++.h>
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
const char sp = ' ', nl = '\n';
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, k;
    fin >> n >> k;
    vector<int> v(n);
    for (auto& x : v) {
        fin >> x;
    }
    deque<int> dq;
    long long ans = 0;
    for (int i = 0; i < n; ++i) {
        while (dq.size() && v[dq.back()] > v[i]) {
            dq.pop_back();
        }
        dq.push_back(i);
        if (i - dq.front() == k) {
            dq.pop_front();
        }
        if (i >= k - 1) {
            ans += v[dq.front()];
        }
    }
    fout << ans;
}