Cod sursa(job #593720)

Utilizator theocmtAxenie Theodor theocmt Data 4 iunie 2011 12:25:28
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<stdio.h>

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

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