Cod sursa(job #714113)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 15 martie 2012 13:47:40
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <deque>

using namespace std;

FILE *f,*s;

int i,j,k,l,m,n;

int v[5000005];

deque <int> d;

int main()
{
	f=fopen("deque.in","r");
	s=fopen("deque.out","w");
	
	fscanf(f,"%d %d",&n,&k);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	
	long long int suma=0;
	
	for(i=1;i<=n;i++)
	{
		while(!d.empty() && v[i]<=v[d.back()])
			d.pop_back();

		d.push_back(i);

		while(d.front()<=i-k)
			d.pop_front();

		if(i>=k)
			suma+=v[d.front()];
	}

	fprintf(s,"%lld",suma);
	
	fclose(s);
	
	return 0;
}