Cod sursa(job #552890)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 13 martie 2011 09:26:12
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <stdio.h>
#define maxn 5000010

int n,k,i,v[maxn],d[maxn],p,u;
long long s;

int main()
{
	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]);
	}
	p=1;
	u=0;
	for(i=1;i<=n;i++){
		while(p<=u && v[i]<=v[d[u]]){
			u--;
		}
		u++;
		d[u]=i;
		if(d[p]==i-k){
			p++;
		}
		if(i>=k){
			s+=v[d[p]];
		}
	}
	printf("%lld",s);
	return 0;
}