Cod sursa(job #521546)

Utilizator elfusFlorin Chirica elfus Data 12 ianuarie 2011 19:53:35
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 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,S=0,p=1,u=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("%d",S);
}


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