Cod sursa(job #237005)

Utilizator swift90Ionut Bogdanescu swift90 Data 28 decembrie 2008 21:22:53
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<stdio.h>
struct ddd{
	long long val,poz;
} deq[5000000];
int main(){
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	long long n,k,i,st,dr,x,sol=0;
	scanf("%lld%lld",&n,&k);
	st=dr=0;
	for(i=1;i<=n;++i){
		scanf("%lld",&x);
		if(deq[st].poz<=i-k)
			++st;
		while(deq[dr].val>x && dr>=st)
			--dr;
		deq[++dr].val=x;
		deq[dr].poz=i;
		if(i>=k)
			sol+=deq[st].val;
	}
	printf("%lld\n",sol);
	fclose(stdin);
	fclose(stdout);
	return 0;
}