Cod sursa(job #261608)

Utilizator znakeuJurba Andrei znakeu Data 18 februarie 2009 15:58:38
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <stdio.h>
#define MAXN 5000000

int v[MAXN + 5];		
int D[MAXN + 5];		
int N,K; 		
int L=1,R=0;
long long REZ=0;

int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);	
	
	scanf("%d%d",&N,&K);
	
	for (int i=1; i<=N; ++i)
	{
		scanf("%d",&v[i]); 
        while (L <= R && v[i] <=  v[ D[R] ]) --R;   
		D[++R] = i;
        if (D[L] == i-K) ++L;	
		if (i >= K)	REZ += v[ D[L]];    
	}

	printf("%lld\n",REZ);	
	
	fclose(stdin);			
	fclose(stdout);
	return 0;
}