Cod sursa(job #254005)

Utilizator socheoSorodoc Ionut socheo Data 6 februarie 2009 15:09:56
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<stdio.h>
#define maxn 5000001
int a[maxn],c[maxn],n,k,i,st,sf;
long long s;

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