Cod sursa(job #2887636)

Utilizator irinaenescu2002Enescu Irina irinaenescu2002 Data 9 aprilie 2022 22:21:14
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <deque>
#include <fstream>
#include <vector>

using namespace std;

ifstream citeste("deque.in");
ofstream scrie("deque.out");

int n, k, a;
long long s;
deque <int> poz;
vector <int> v;

void citire ()
{
    citeste >> n >> k;
    v.push_back(-11111);
    while (citeste >> a)
        v.push_back(a);
}

void rezolvare ()
{
    for (int indice_valoare=1; indice_valoare<=n; indice_valoare++)
    {
        while (poz.size() != 0 && v[indice_valoare] <= v[poz.back()])
            poz.pop_back();
        poz.push_back(indice_valoare);
        if (indice_valoare >= k)
        {
            s = s + v[poz.front()];
            cout << s << endl;
            if (poz.front() == (indice_valoare - k + 1 ))
                poz.pop_front();
        }
    }
}

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