Cod sursa(job #544504)

Utilizator alexa_myparadiseAlexutzaaa alexa_myparadise Data 1 martie 2011 18:31:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<stdio.h>
using namespace std;
int a[5000001],deque[5000001];
int main()
{
	int n,k,i,front=1,back=0;
	long long sum=0;
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d%d",&n,&k);
	for (i=1;i<=n;i++) scanf("%d ", &a[i]);
	for (i=1;i<=n;i++) 
	{
		while (front<=back && a[i]<=a[deque[back]]) --back;
		deque[++back]=i;
		if (deque[front]==i-k) ++front;
		if (i>=k) sum+=a[deque[front]];
	}
	printf("%lld\n", sum);
	return 0;
}