Cod sursa(job #283358)

Utilizator sigridMaria Stanciu sigrid Data 19 martie 2009 07:12:16
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>
#define dim 5000001

int a[dim],c[dim];

long long suma;

int n,k,prim,ultim,i;

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]);

 prim=ultim=1;
 c[prim]=1;

 i=2;

 while(i<=n)
  {

   if(i==(c[prim]+k))
     ++prim;

   while( (a[i]<a[c[ultim]]) && (prim<=ultim) )
     --ultim;

   ++ultim;
   c[ultim]=i;

   if(i>=k)
    suma+=a[c[prim]];

   ++i;
}

printf("%lld \n", suma);

return 0;
}