Cod sursa(job #413339)

Utilizator laurenttlaurentiu pavel laurentt Data 8 martie 2010 09:42:08
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>
//#include<deque>

int n,k, a[5000100];
int inc, sf;
int deque[5000100];
long long sum;

void cit()
{
	scanf("%d %d",&n,&k);
	int i;
	for(i=1; i<=n; i++) scanf("%d",&a[i]);
}

void rez()
{
	inc=1, sf=0;
	for(int i=1; i<=n; i++)
	{
		while(inc<=sf && a[i]<=a[deque[sf]])
			sf--;
		deque[++sf]=i;
		
		if(deque[inc]==i-k)
			inc++;
		if( i>=k)
			sum+=a[deque[inc]];
	}
}

void afis()
{
    printf("%lld ", sum);
}

int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	
	cit();
	rez();
	afis();
	
	return 0;
}