Cod sursa(job #1597468)

Utilizator petrooPetru G petroo Data 12 februarie 2016 00:00:07
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#define MAX 500001 

int Vector[MAX], Deque[MAX];

int main(void)
{

	int i, Sum = 0, N, K, head = 1, tail = 0;
	freopen("deque.in", "r", stdin);
	freopen("deque.out", "w", stdout);
	scanf("%d%d", &N, &K);
	for (i = 1;i <= N;i++)
		scanf( "%d", &Vector[i]);	
	
	for (i = 1;i <= N;i++)
	{
		while ( (head <= tail) && (Vector[i] <= Vector[Deque[tail]]))
			tail--;
		Deque[++tail] = i;
		if (Deque[head] == i - K)
			head++;
		if (i >= K)
			Sum += Vector[Deque[head]];

	}
	printf("%d", Sum);

	 
	return 0;
}