Cod sursa(job #1379429)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 6 martie 2015 17:50:58
Problema Deque Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#define NMax 5000010
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n, k, mdeque[NMax], fi, la, ap;
long long sumMin, v[NMax];
int main()
{
	f >> n >> k;
	for (int i = 1; i <= n; i++)
		f >> v[i];
	fi = 1;
	la = 0;
	v[0] = -2000000000;
	for (int i = 1; i <= n; i++) {
		while (v[mdeque[la]] > v[i])
			la--;
		mdeque[++la] = i;
		while (i - ap > k) {
			ap++;
			if (ap == mdeque[fi])
				fi++;
		}
		if (i - ap == k)
			sumMin += v[mdeque[fi]];
	}
	g << sumMin;
}