Cod sursa(job #2887274)

Utilizator AdelaCorbeanuAdela Corbeanu AdelaCorbeanu Data 9 aprilie 2022 10:32:59
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>

long long v[5000010];
int deq[5000010];

int main()
{
    std::ifstream fin("deque.in");
    std::ofstream fout("deque.out");
    int n, k;
    fin >> n >> k;

    for (int i = 0; i < n; ++i) fin >> v[i];

    int front = 0, back = 0;
    long long sum = 0;
    for (int i = 0; i < n; ++i) {
        while (deq[front] < i - k + 1) front++;

        while (v[i] <= v[deq[back]] && back >= front) back--;
        deq[++back] = i;

        if (i >= k - 1) sum += v[deq[front]];
    }

    fout << sum;
    return 0;
}