Cod sursa(job #236887)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 28 decembrie 2008 17:53:56
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
# include <stdio.h>
# define nmax 5000010
int N,K,a[nmax],C[nmax];

int main(){
  long long S=0;
  int i,st,dr;

  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; dr=0;
  for (i=1;i<=N;i++){
    while (st<=dr && a[i]<=a[C[dr]]) dr--;
    C[++dr]=i;
    if (C[st]==i-K) st++;
    if (i>=K) S+=a[st];
  }
  printf("%lld",S);
  return 0;
}