Cod sursa(job #1414417)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 2 aprilie 2015 16:39:15
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>

#define NMax 5000010

using namespace std;

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

int n, k, v[NMax], i, j, p, u, deq[NMax];
long long sum;

int main()
{
	f >> n >> k;
	for (int i = 1; i <= n; i++)
		f >> v[i];

	p = 1;
	u = 0;
	for (int i = 1; i <= n; i++) {
		while (p <= u && v[i] <= v[deq[u]])
			u--;
		deq[++u] = i;

		while (deq[p] <= i - k && p <= u)
			p++;

		if (i >= k)
			sum += v[deq[p]];
	}
	g << sum;
}