Cod sursa(job #919252)

Utilizator taigi100Cazacu Robert taigi100 Data 19 martie 2013 15:37:50
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<stdio.h>
#define max 5000010
int v[max],deq[max];
int n,k;
long long s;

int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	
	scanf("%d %d",&n,&k);
	
	for(int i=1;i<=n;i++)
		scanf("%d",&v[i]);
	
	int front=1,back=0;
	
	for(int i=1;i<=n;i++)
	{
		while(front<=back && v[i]<=v[deq[back]]) back--;
		deq[++back]=i;
		if(deq[front]==i-k) front++;
		
		if(i>=k) s+=v[deq[front]];
	}
	printf("%lld",s);
}