Cod sursa(job #502878)

Utilizator cat_red20Vasile Ioana cat_red20 Data 20 noiembrie 2010 17:37:12
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<stdio.h>
int v[5000100],d[5000100],p,u,i,k,n;
long long int s;
FILE *fin,*fout;
int main(){
	fin=fopen("deque.in","r");
	fout=fopen("deque.out","w");
	fscanf(fin,"%d %d",&n,&k);
	for(i=1;i<=n;i++)
		fscanf(fin,"%d",&v[i]);
	p=1;
	u=0;
	for(i=1;i<=n;i++){
		while(v[i]<v[d[u]] && p<=u)
			u--;
		u++;
		d[u]=i;
		if(d[p]<=i-k)
			p++;
		if(i>=k)
			s+=v[d[p]];
		
	}
	fprintf(fout,"%lld",s);
	fclose(fin);
	fclose(fout);
return 0;}