Cod sursa(job #2044982)

Utilizator theodor.vladTheodor Vlad theodor.vlad Data 21 octombrie 2017 17:33:05
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

struct elem
{
	int x, position;
};

int n, k;
deque<elem> dq;

int main()
{
	elem el;

	fin >> n >> k;

	for (int i = 1; i <= k; i++)
	{
		fin >> el.x;
		el.position = i;

		while (!dq.empty() && dq.back().x >= el.x)
			dq.pop_back();

		dq.push_back(el);
	}

	int sum = dq.front().x;

	for (int i = k + 1; i <= n; i++)
	{
		if (!dq.empty() && dq.front().position < i - k + 1)
			dq.pop_front();

		fin >> el.x;
		el.position = i;

		while (!dq.empty() && dq.back().x >= el.x)
			dq.pop_back();

		dq.push_back(el);

		sum += dq.front().x;
	}

	fout << sum << '\n';
	return 0;
}