Cod sursa(job #3266680)

Utilizator mewcatPetru Boca mewcat Data 9 ianuarie 2025 20:24:44
Problema Deque Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <deque>

#define ll long long

using namespace std;

int a[5000000];
deque<int> q;

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];
    }

    q.push_back(a[k - 1]);

    for (int i = k - 2; i >= 0; i--)
    {
        q.push_front(min(q.front(), a[i]));
    }

    sum += q.front();

    for (int i = k; i < n; i++)
    {
        if (q.size() >= k)
        {
            q.pop_front();
        }

        while (!q.empty() && q.back() > a[i])
        {
            q.pop_back();
        }

        q.push_back(a[i]);

        sum += q.front();
    }

    fout << sum;
}