Cod sursa(job #282500)

Utilizator Andrei_ScorpioAndreiana Andrei Daniel Andrei_Scorpio Data 17 martie 2009 19:09:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<stdio.h>
#define Nmax 5000010
int k,a[Nmax],n,c[Nmax],fr=1,ls=0;
long long s;


void citire()
{
 freopen("deque.in","r",stdin);
 int i;
 scanf("%d%d",&n,&k);
 for(i=1;i<=n;i++)
	scanf("%d",&a[i]);
 fclose(stdin);
}

int main()
{
 int i;
 citire();
 for(i=1;i<=n;i++)
 {	while(fr<=ls && a[i]<=a[c[ls]])	ls--;
	ls++;
	c[ls]=i;
	if(c[fr]==i-k)	fr++;
	if(i>=k)	s=s+a[c[fr]];
 }

 freopen("deque.out","w",stdout);
 printf("%lld",s);
 fclose(stdout);
 return 0;
}