Cod sursa(job #1861753)

Utilizator Chirac_MateiChiriac Matei Chirac_Matei Data 29 ianuarie 2017 11:35:57
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream fin ("deque.in");
ofstream fout("deque.out");
int capats, capatd, i, j;
long long n, k;
long long summin;
struct cap
{
	long long val, poz;
};
deque<cap> q;
cap x;
int main()
{
	fin >> n >> k;
	for (i = 1;i <= k;i++)
	{
		fin >> x.val;
		x.poz = i;

		while (!q.empty() && q.back().val > x.val)
		{
			q.pop_back();

		}
		q.push_back(x);
	}
	summin = q.front().val;
	capats = 1;
	capatd = k;
	for (i = k + 1;i <= n;i++)
	{
		fin >> x.val;
		x.poz = i;
		capats++;
		capatd++;
		if (q.front().poz < capats)
		{
			q.pop_front();
		}

		while (!q.empty() && q.back().val > x.val)
		{
			q.pop_back();

		}
		q.push_back(x);
		summin += q.front().val;
	}
	fout << summin;
	return 0;
}