Cod sursa(job #815455)

Utilizator andreea29Iorga Andreea andreea29 Data 16 noiembrie 2012 23:04:58
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<fstream>
#define Nmax 5000010
using namespace std;
int n, k, a[Nmax], l, r, c[Nmax];
long long s;
int main()
{
	ifstream f("deque.in");
	ofstream h("deque.out");
	f >> n >> k;
	for (int i = 1; i <= n; ++i)
		f >> a[i];
	f.close();
	l = 1;
	r = 0;
	for (int i = 1; i <= n; ++i)
	{
		while (l <= r && a[i] <= a[c[r]])
			r--;
		r++;
		c[r] = i;
		if (c[l] == i - k)
			l++;
		if (i >= k)
			s += a[c[l]];
	}
	h << s << '\n';
	
	h.close();
	return 0;
}