Cod sursa(job #3031960)

Utilizator SSKMFSS KMF SSKMF Data 21 martie 2023 10:32:53
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <utility>
#include <deque>
using namespace std;

ifstream cin ("deque.in");
ofstream cout ("deque.out");

deque < pair <int , int> > optiuni;

int main ()
{
    int lungime_sir , lungime_secventa , numar;
    cin >> lungime_sir >> lungime_secventa;

    long long suma_minime = 0;
    for (int indice = 1 ; indice <= lungime_sir ; indice++)
    {
        cin >> numar;

        while (!optiuni.empty() && numar <= optiuni.back().first)
            optiuni.pop_back();

        optiuni.push_back(make_pair(numar , indice));

        if (optiuni.front().second == indice - lungime_secventa)
            optiuni.pop_front();

        if (indice >= lungime_secventa)
            suma_minime += optiuni.front().first;
    }

    cout << suma_minime;
    cout.close(); cin.close();
    return 0;
}