Cod sursa(job #1591579)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 6 februarie 2016 13:54:13
Problema Deque Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

#define NMax 5000010

using namespace std;

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

int n, k, elem[NMax], deque[NMax], front, back;
long long sum;

int main()
{
	f >> n >> k;
	for (int i = 1; i <= n; i++)
		f >> elem[i];
	
	elem[0] = -2000000000, front = 1;
	for (int i = 1; i <= n; i++) {
		while (elem[i] < elem[deque[back]])
			back--;
		deque[++back] = i;

		if (i - k + 1 > deque[front])
			front++;

		if (deque[back] >= k)
			sum += elem[deque[front]];
	}

	g << sum;
	return 0;
}