Cod sursa(job #3127609)

Utilizator darius1843Darius Suditu darius1843 Data 7 mai 2023 16:53:00
Problema Deque Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <stack>
#include <vector>

using namespace std;

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


int main() {

    int n, k, sum = 0;
    int v[100];
    stack<int> stiva;
    vector<int> index;

    in >> n >> k;


    for (int i = 0; i < n; i++) 
        in >> v[i];


    for (int i = 0; i < n; i++) {

        do {

            if (stiva.empty() == false && v[stiva.top()] > v[i])
            {

                stiva.pop();
                index.pop_back();

            }

            else 
                break;

        } while (true);

        stiva.push(i);
        index.push_back(i);

        if (i - index.front() >= k)
            index.erase(index.begin());

        if (i >= k - 1)
            sum += v[index.front()];
    }

    out << sum << endl;

    return 0;
}