Cod sursa(job #513776)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 16 decembrie 2010 21:40:07
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <stdio.h>

const int maxn=5000009;
int i,N,K,A[maxn],D[maxn],Front,Back;
long long S;

int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d %d",&N,&K);
	for(i=1;i<=N;i++)
		scanf("%d",&A[i]);
	Front=1; Back=0;
	for(i=1;i<=N;i++)
	{
		while(Front <= Back && A[D[Back]] >= A[i])
			Back--;
		D[++Back]=i;
		if(D[Front]==i-K) Front++;
		if(i>=K) S+=A[D[Front]];
	}
	printf("%lld",S);
}