Cod sursa(job #2888900)

Utilizator Teodor_AxinteAxinte Teodor-Ionut Teodor_Axinte Data 11 aprilie 2022 22:28:55
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> v;
deque<int> dq;
long long int ans;
int n, x, k;

int main() {
    fin >> n >> k;
    for (int i = 0; i < n; i++) {
        fin >> x;
        v.push_back(x);
    }

    dq.push_back(0);

    for (int i = 1; i < v.size(); i++) {
        if (!dq.empty())
            while (v[i] < v[dq[dq.size() - 1]]) {
                dq.pop_back();
                if (dq.empty())
                    break;
            }

        dq.push_back(i);
        if (dq[0] == i - k)
            dq.pop_front();
        if (i >= k - 1)
            ans += v[dq[0]];
    }

    fout << ans;

    return 0;

}