Cod sursa(job #271834)

Utilizator xtremespeedzeal xtreme Data 5 martie 2009 23:26:55
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<iostream.h>
#include<stdio.h>

int A[5000001],deque[5000001];
unsigned int n,k,i,front=1,back=0;
unsigned long long s=0;



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]);
    for(i=1;i<=n;i++)
          {
          while(front<=back && A[i]<=A[deque[front]])
                           back--;
          deque[++back]=i; 
          if(deque[front]==i-k)
                               front++;
          if(i<=k)
                  s+=A[deque[front]];
          }
    printf("%llu",s);
    return 0;
    }