Cod sursa(job #1053121)

Utilizator RampageSergiu Caraian Rampage Data 12 decembrie 2013 11:51:30
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>
using namespace std;

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

long long v[5000001],dq[5000001];

int main()
{
	long long n, k, suma_min=0;
	
	f>>n>>k;
	for (int i=1; i<=n; ++i)
		f>>v[i];
	
	int l=1, r=0;
	for (int i=1; i<=n; ++i)
	{
		while(l<=r && v[dq[r]]>=v[i])
			r--;	
	
		r++;
		dq[r] = i;
		
		if (dq[l]==i-k)
			l++;
		if (i>=k)
			suma_min+=v[dq[l]];

	}

	g<<suma_min;
	return 0;
}