Cod sursa(job #624382)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 22 octombrie 2011 12:09:54
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>
int n , i , p , u , k;
long long sum;
int D[5000004];
int V[5000004];
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=1;D[1]=1;
	for(i=2;i<=n;i++){
		while(p<=u&&V[D[u]]>=V[i])
			u--;
		D[++u]=i;
		if((i-D[p])==k)
			p++;
		if(i>=k)
			sum+=V[D[p]];
	}
	printf("%lld",sum);
	return 0;
}