Cod sursa(job #385185)

Utilizator wscsprint3rIrimescu Stefan wscsprint3r Data 22 ianuarie 2010 10:55:16
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
//
#include<stdio.h>
FILE *f=fopen("deque.in","r"), *g=fopen("deque.out","w");
long v[5000001],s,n,k,best,i,j,start,finish,c[5000001];

int main()
{
	int i;
	
	fscanf(f,"%lld %lld", &n, &k);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%lld", &v[i]);
	
	start=1;
	finish=0;
	
	for(i=1;i<=n;i++)
	{
		while(v[i] <= v[c[finish]]&& start <= finish) 
			finish--;
		
		
			c[++finish]=i;	
		
			if(c[start]==i-k)
				start++;
			
			
			
			if(i>=k)
				s=s+v[c[start]];
			
	}
			
		
	
	 fprintf(g,"%lld",s);

fclose(f);
fclose(g);
return 0;
}