Cod sursa(job #235567)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 24 decembrie 2008 14:40:22
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>

int N, K, deque[5000005], v[5000005];
long long sum;

int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);

	int i, p, u;

	scanf("%d %d", &N, &K);
	for (i = 1; i <= N; i++) scanf("%d", v + i);

	p = 1; u = 0;

	for (i = 1; i <= N; i++)
	{
		while (v[i] <= v[ deque[u] ] && u >= p) u--;
		deque[++u] = i;

		if (deque[p] == i - K) p++;

		if (i >= K) sum += v[ deque[p] ];
	}
	printf("%lld\n",sum);
	return 0;
}