Cod sursa(job #472385)

Utilizator Robert29FMI Tilica Robert Robert29 Data 24 iulie 2010 13:56:36
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>
FILE*f=fopen("deque.in","r");
FILE*g=fopen("deque.out","w");
int n,k,v[5000001],i,p,u,d[5000001];
long long s;
int main() {
	fscanf(f,"%d%d",&n,&k);
	p=1;
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	for(i=1;i<=n;i++){
		while(p<=u && v[i]<=v[d[u]])
			u--;
		d[++u]=i;
		if(d[p]==i-k)
			p++;
		if(i>=k)
			s+=v[d[p]];
	}
	fprintf(g,"%lld",s);

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