Cod sursa(job #1597466)

Utilizator petrooPetru G petroo Data 11 februarie 2016 23:58:48
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>
#include "stdafx.h"
#include<conio.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);

	_getch(); 
	return 0;
}