Cod sursa(job #3247564)

Utilizator Sebi_RipaSebastian Ripa Sebi_Ripa Data 8 octombrie 2024 14:09:04
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <deque>
using ll = long long;
#define int ll

using namespace std;

ifstream cin ("deque.in");
ofstream cout ("deque.out");

int v[5000005];
deque <int> dq;

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