Cod sursa(job #1554846)

Utilizator cristiancCristian cristianc Data 21 decembrie 2015 20:26:12
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <deque>
using namespace std;
struct element
{  int x, poz;  };
int main()
{
	ifstream ii("deque.in");
	ofstream oo("deque.out");
	deque<element> coada; int n, k, i;  element el;
	long long suma = 0;  ii >> n >> k;
	for (i = 0; i < k; i++)
	{
		ii >> el.x;  el.poz = i;
		while (coada.size() && coada.front().x >= el.x)
			coada.pop_front();
		coada.push_front(el);
	}
	for (suma += coada.back().x; i < n; i++)
	{
		ii >> el.x;  el.poz = i;
		if (coada.size() && i - coada.back().poz > k-1)
			coada.pop_back();
		while (coada.size() && coada.front().x >= el.x)
			coada.pop_front();
		coada.push_front(el);
		suma += coada.back().x;
	}
	oo << suma;
}