Cod sursa(job #2766821)

Utilizator Tudor_StefanaStefana Tudor Tudor_Stefana Data 3 august 2021 15:49:09
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

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

    int n, k;
    fin >> n >> k;

    vector< int > v(n + 1);

    for(int i = 1; i <= n; ++i) {
        fin >> v[i];
    }

    deque< pair< int, int > > dq;

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

        dq.push_back({v[i], i});
    }

    long long ans = 0;

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

        dq.push_back({v[i], i});
        if(dq.front().second < i - k + 1) dq.pop_front();

        ans += dq.front().first;
    }

    fout << ans << '\n';
    return 0;
}