Cod sursa(job #407213)

Utilizator xtephanFodor Stefan xtephan Data 2 martie 2010 10:02:04
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<stdio.h>

long a[5000100], Deque[5000100];
long long Sum;
long n,k;

void cit();
void rez();
void afis();

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

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


void rez() {
	
	long inc=1,sf=0;
	
	for(long 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);
}