Cod sursa(job #3211186)

Utilizator susanEmily Susan susan Data 8 martie 2024 18:12:09
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#pragma GCC optimize("O3,unroll-loops")

#include <fstream>
#include <deque>

using namespace std;
using ll = long long;

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

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

    deque<pair<int, int>> Q;

    for (int i = 0, x; i < k; ++i) {
        f >> x;
        while (!Q.empty() && Q.back().first > x)
            Q.pop_back();

        Q.emplace_back(x, i);
    }

    ll sum = Q.front().first;

    for (int i = k, x; i < n; ++i) {
        f >> x;
        while (!Q.empty() && Q.front().second <= i - k)
            Q.pop_front();

        while (!Q.empty() && Q.back().first > x)
            Q.pop_back();

        Q.emplace_back(x, i);
        sum += Q.front().first;
    }

    g << sum << '\n';
}