Cod sursa(job #905456)

Utilizator PregatireONIAnamaria Cotirlea PregatireONI Data 5 martie 2013 20:45:41
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>
#include <deque>

using namespace std;

FILE *f,*s;

int i,j,k,n;

int v[5000005];

long long int rez;

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]);
	
	for(i=1;i<=n;i++)
	{
		while(!d.empty() && v[i]<=d.back())
			d.pop_back();
		
		d.push_back(v[i]);
		
		if (i>k && d.front()==v[i-k])
			d.pop_front();
		
		if (i>=k)
			rez+=d.front();
	}
	
	fprintf(s,"%lld",rez);
	
	fclose(s);
	
	return 0;
}