Cod sursa(job #3331674)

Utilizator mewcatPetru Boca mewcat Data 29 decembrie 2025 20:01:51
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

#define ll long long

ll a[5000000];
deque<ll> dq;

int main()
{
    ifstream fin("deque.in");
    ofstream fout("deque.out");

    int n = 0;
    int k = 0;
    ll sum = 0;

    fin >> n >> k;

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

    for (int i = 0; i < n; i++)
    {
        if (dq.size() && dq.front() < i - k + 1)
        {
            dq.pop_front();
        }

        while (dq.size() && a[dq.back()] >= a[i])
        {
            dq.pop_back();
        }

        dq.push_back(i);

        //cout << dq.front() << ' ' << dq.back() << '\n';

        if (i >= k - 1)
        {
            sum += a[dq.front()];
        }
    }

    fout << sum;
}