Cod sursa(job #282879)

Utilizator sigridMaria Stanciu sigrid Data 18 martie 2009 14:44:14
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 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;
}