Cod sursa(job #2619463)

Utilizator DenisaCantuCantu Denisa DenisaCantu Data 27 mai 2020 19:08:08
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
deque <int> mini;
int n, k, sum, v[5000005];
int main()
{

    f >> n >> k;
    for (int i = 1; i <= n; i++)
    {
        f >> v[i];
        while (!(mini.empty()) && v[i] < mini.back()) ///cat timp am elemente in mini si exista elemente mai mari decat v[i]
        {
            mini.pop_back(); ///elimin elementele
        }
        mini.push_back(v[i]);


        if (i >= k) ///daca s a depasit distanta k

        {
            if (mini.front() == v[ i - k]) /// in cazul in care cel mai mic element din mini este la o distanta mai mare decat k
            {
                mini.pop_front(); ///il elimin din lista
            }
            sum += mini.front();
        }




    }

    g<<sum;
    return 0;
}