Cod sursa(job #3368794)

Utilizator radu_alexRadu Hopartean radu_alex Data 15 octombrie 2026 19:31:15
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb

#include <fstream>
#include <deque>
#include <vector>
#include <algorithm>

#define ll long long int 

std::ifstream in("deque.in");
std::ofstream out("deque.out");

ll ans = 0;
int n,k;
std::vector<int>v;

int main(void) {

    in >> n >> k;
    v.resize(n);

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

    std::deque<int>dq;

    for(int i = 0 ; i < n ; i ++ ) {
        
        while(!dq.empty() && v[i] < v[dq.back()]) {
            dq.pop_back();
        }
        
        dq.push_back(i);
        
        if (i >= k) {
            if (dq.front() <= i - k) {
                dq.pop_front();
            }
        }

        if (i >= k - 1) {
            ans += v[dq.front()];
        }
    }

    out << ans;

    return 0;
}