Cod sursa(job #2622860)

Utilizator ihorvaldsTudor Croitoru ihorvalds Data 1 iunie 2020 23:22:11
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>

bool empty(int& start, int& end) {
    bool b = start == end;
    return b;
}

long long a[5000010] = { 0 };
int dq[5000010] = { 0 };

int main()
{
    std::ifstream f("deque.in");
    std::ofstream g("deque.out");

    int n, k;
    f >> n >> k;

    int start = 0, back = -1;

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

    long long s = 0;

    for (int i = 0; i < n; i++) {
        if (dq[start] <= i - k) {
            start++;
        }

        while (start <= back && a[dq[back]] >= a[i]) {
            back--;
        }

        back++;
        dq[back] = i;

        if (i + 1>= k) {
            s += a[dq[start]];
        }
    }

    std::cout << s;
}