Cod sursa(job #268502)

Utilizator NorthGBYX si Y NorthGBY Data 1 martie 2009 12:42:33
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
#define N 5000010
long long d[N],val,sol;
int n,k,x[N],p,u,i;
void readd(),solve();
int main()
{
	readd();
	solve();
	return 0;
}
void readd()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d%d",&n,&k);
}
void solve()
{
	p=1;
	for(i=1;i<k;i++)
	{
		scanf("%lld",&val);
			while(p<=u && val<=d[u])u--;
			u++;d[u]=val;x[u]=i;
	}
	for(i=k;i<=n;i++)
	{
		scanf("%lld",&val);
		if(i-x[p]==k)p++;
		while(p<=u && val<=d[u])u--;
		u++;d[u]=val;x[u]=i;
		sol+=d[p];
	}
	printf("%lld\n",sol);
}