Cod sursa(job #343715)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 26 august 2009 22:32:51
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
#define DIM 5000001
int i, n, k, p ,u, a[DIM], deque[DIM];
long long s;
using namespace std;

int main()
{
    freopen ("deque.in","r",stdin);
    freopen ("deque.out","w",stdout);
    scanf ("%d%d\n",&n,&k);
    p=1; // deque empty 
    for ( i = 1; i <= n; ++i ) scanf ("%d\n",&a[i]);
    for ( i = 1; i <= n; ++i )
        {
            while ( p <= u && a[i] <= a[ deque[u] ] )  u--;
            deque[ ++u ] = i;
            if ( deque [ p ] == i-k) ++p; //we no longer need him 
            if ( i >= k ) s += a[ deque[p] ];
        }
    printf ("%lld\n",s);        
return 0;
}