Cod sursa(job #3127625)

Utilizator darius1843Darius Suditu darius1843 Data 7 mai 2023 16:59:51
Problema Deque Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <stack>
#include <vector>

using namespace std;

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

long long v[5000001];
int main() 
{
    long long n, k, sum = 0;
    stack<long long> stiva;
    vector<long long> 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;
}