Cod sursa(job #575764)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 8 aprilie 2011 18:43:32
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>

long p, u, i, k, n, a[5000001], c[5000001];
long long s;

int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	
		scanf("%ld %ld", &n, &k);
		
		p = u = 1;
		scanf("%ld", &a[1]);
		c[1] = 1;
		for (i = 2; i <= n; i ++)
		{
			scanf("%ld", &a[i]);
			
			while (a[i] <= a[c[u]] && u > p) u --;
			if (a[i] > a[c[u]]) u ++;
			c[u] = i;
			if (i - k == c[p]) p ++;
			if (i >= k) s += a[c[p]];
		}
	
		printf("%lld\n", s);
		
	return 0;
}