Cod sursa(job #278878)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 12 martie 2009 16:23:55
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>
#define N 5000002
int deq[N],v[N];
int main(){
	int st=1,dr=0,n,i,k;
	long long s=0;
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
	
	for(i=1;i<=n;i++){
		while(st<=dr && v[deq[dr]]>=v[i]) dr--;
		deq[++dr]=i;
		while(deq[st]<=i-k) st++;
		if(i>=k) 
			s+=v[deq[st]];
	}
	printf("%lld\n",s);
	return 0;
}