Cod sursa(job #1538645)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 29 noiembrie 2015 16:13:54
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>

#define NMax 5000010
#define INF 10000010

using namespace std;

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

int num, len, val, vals[NMax], deque[NMax], front, back;
long long sMin;

int main()
{
	f >> num >> len;

	front = 1, back = 0;
	vals[0] = -INF;
	for (int i = 1; i <= num; i++) {
		f >> vals[i];

		while (front <= back && vals[deque[back]] >= vals[i])
			back--;
		deque[++back] = i;

		if (deque[back] - len >= deque[front])
			front++;

		if (deque[back] >= len)
			sMin += vals[deque[front]];
	}

	g << sMin;

	return 0;
}