Cod sursa(job #3125527)

Utilizator CraniXortDumitrescul Eduard CraniXort Data 3 mai 2023 17:09:39
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
#define maxn 5000005
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");

long long dq[maxn];
long long v[maxn];
int front = -1, back = 0;



int main() {
    int n, k;
    long long sum = 0;
    fin >> n >> k;
    for(int i = 0; i < n; i ++) {
        if(front >= back and i - dq[back] >= k) {
            back ++;
        }
        long long value;
        fin >> value;
        v[i] = value;

        while(back <= front and v[dq[front]] >= value) {
            front --;
        }
        dq[++front] = i;

        if(i >= k-1)
            sum += v[dq[back]];
    }
    fout << sum << '\n';
    return 0;
}