Cod sursa(job #501506)

Utilizator paul_gabryelPaul Buda paul_gabryel Data 15 noiembrie 2010 12:56:49
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb

#include<deque>
#include<cstdio>
#include<fstream>

using namespace std;

#define m 5000010

int n,k;
int v[m];
long long S;
deque< int > q;

int main()
{

	ifstream in ("deque.in");
	in>>n>>k;
	for(int i=1;i<=n;i++) 
		in>>v[i];
	in.close ();	

	for(int i=1;i<=n;++i)
	{
		for(;q.size()&&v[i]<=v[q.back()];q.pop_back());		
		q.push_back(i);
		if(q.front()==i-k) q.pop_front();
		if (i>=k) S+=v[q.front()]; 	
	}
	
	freopen("deque.out", "w", stdout);
	printf("%lld", S);

	return 0;
}