Cod sursa(job #1076809)

Utilizator stanescu.raduRadu Stanescu stanescu.radu Data 10 ianuarie 2014 16:46:58
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

using namespace std;

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

int n,k,front,back,i;
int DQ[5000005],v[5000005];
long long suma;

int main ()
{
	f >> n >> k;
	for (i = 1; i <= n; i++)
		f >> v[i];
	front = 1;
	back = 0;
	for (i = 1; i <= n; i++)
	{
		while (front <= back && v[i] <= v[DQ[back]]) back--;
		DQ[++back] = i;
		if (DQ[front] == i-k) front++;
		if (i >= k) suma += v[DQ[front]];
	}
	g << suma;
	f.close();
	g.close();
	return 0;
}