Cod sursa(job #304394)

Utilizator TyberFMI Dogan Adrian Ioan Lucian Tyber Data 12 aprilie 2009 16:01:59
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include<stdio.h>
#define nmax 5000001
int n,k,a[nmax],d[nmax],f,b;
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",&a[i]);
	f=1;
	b=0;
	for(int i=1;i<=n;i++){
		while(f<=b&&a[i]<=a[d[b]])
			b--;
		b++;
		d[b]=i;
		if(d[f]==i-k)
			f++;
		if(i>=k)
			s=s+a[d[f]];}
	printf("%lld\n",s);
	return 0;
}