Cod sursa(job #2732207)

Utilizator marabelu131Mara-Luciana Belu marabelu131 Data 28 martie 2021 20:13:14
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");

	int n, k, x, first = 1, last = 0;
    long long int suma;


    fin >> n >> k;

    int sir[n], poz[n];

	for (int i = 1; i <= n; i++)
	{
        fin >> x;
        sir[i] = x;

		while (first <= last && sir[i] <= sir[poz[last]])
            last--;

        last++;
        poz[last] = i;

		if (poz[first] == (i - k))
            first++;

		if (i >= k)
            suma += sir[poz[first]];
	}

    fout << suma;

    fin.close();
    fout.close();

	return 0;
}