Cod sursa(job #2889320)

Utilizator Stefan_MagureanuMagureanu Stefan Stefan_Magureanu Data 12 aprilie 2022 17:00:52
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>


int v[5000005], deque[5000005];

int main() {
    std::ifstream fin("deque.in");
    int n, k, f = 0, b = -1;
    /* f-front
     * b-back */
    fin >> n >> k;
    long long S = 0;
    int i = 0;
    while (!fin.eof())
        fin >> v[i++];
    for (i = 0; i < n; i++) {
        while (v[i] <= v[deque[b]] && f <= b)
            b--;
        deque[++b] = i;
        if (i - k == deque[f])
            f++;
        if (i + 1 >= k)
            S += v[deque[f]];
    }
    std::ofstream fout("deque.out");
    fout << S;
    return 0;
}