Cod sursa(job #634477)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 16 noiembrie 2011 15:11:58
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>
#define MAXN 5000010
long long sum;
int n, k, i, p, u, v[MAXN], deque[MAXN];
int main()
{
	freopen("deque.in", "r", stdin);
	freopen("deque.out", "w", stdout);
	p=0;
	u=-1;
	sum=0;
	scanf("%d%d", &n, &k);
	for (i=0;i<n;i++)
		scanf("%d", &v[i]);
	for (i=0;i<n;i++)
	{
		while ((p<=u)&&(v[i]<=v[deque[u]]))
			u--;
		deque[++u]=i;
		if (deque[p]==(i-k))
			p++;
		if (i>=(k-1))
			sum+=v[deque[p]];
	}//for i
	printf("%lld\n",sum);
	return 0;
}//main