Cod sursa(job #2938134)

Utilizator Kawaiimeatball13Russu Mihaela Kawaiimeatball13 Data 11 noiembrie 2022 18:08:08
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;

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

int n, k;
long long a[5000001];
deque <int> d;

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

long long rezolvare()
{
    long long r = 0;
    for(int i = 0; i < n; ++i)
    {
        while(!d.empty() && a[i] < a[d.back()])
            d.pop_back();
        d.push_back(i);
        //cout << d.back() << ' ' << d.front() << '\n';
        if(i >= k - 1)
        {
            r += a[d.front()];
            //cout << a[d.front()] << ' ';
        }

        if(d.front() + k - 1 == i)
            d.pop_front();
    }

    return r;
}

int main()
{
    citire();
    fout << rezolvare();
    return 0;
}