Cod sursa(job #576775)

Utilizator DeadEyeNaiba Mihai Lucian DeadEye Data 9 aprilie 2011 15:22:28
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<cstdio>
int n,k,l,r,x,a[5000001],dq[5000001];
long long ss;
int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d%d",&n,&k);
	l=1; r=0;
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	ss=0;
	for(int i=1;i<=n;i++)
	{
		if(dq[l]+k<=i)
			l++;
		while(l<=r && a[i]<a[dq[r]])
			r--;
		r++;
		dq[r]=i;
		if(i>=k)
			ss+=a[dq[l]];
	}
	printf("%d\n",ss);
	return 0;
}