Cod sursa(job #364917)

Utilizator n3msizN3msiz n3msiz Data 17 noiembrie 2009 14:05:32
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<stdio.h>

int s,n,k,v[500000],d[10],p,u,i;

int main(){
	FILE*f=fopen("deque.in","r");
	FILE*g=fopen("deque.out","w");
	
	fscanf(f,"%d %d\n",&n,&k);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%d\n",&v[i]);
	
	p=1;u=0;
	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,"%d ",d[p]);
	}
	
	fprintf(g,"\n%d",s);
	fclose(f);fclose(g);
	return 0;
}