Cod sursa(job #521547)

Utilizator elfusFlorin Chirica elfus Data 12 ianuarie 2011 19:55:42
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<stdio.h>
#define LMAX 5000100

int n,k,x[LMAX],q[LMAX];

void read()
{
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",&x[i]);
}

void solve()
{
int i,p=1,u=0;
long long S=0;
for(i=1;i<=n;i++)
	{
	while(p<=u && x[q[u]]>=x[i])
		u--;
	q[++u]=i;
	if(q[p]+k==i)
		p++;
	if(i>=k)
		S+=x[q[p]];
	}
printf("%lld",S);
}


int main()
{
read();
solve();
return 0;
}