Cod sursa(job #526529)

Utilizator DraStiKDragos Oprica DraStiK Data 28 ianuarie 2011 16:27:43
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <algorithm>
using namespace std;

#define DIM 5000005

int v[DIM],dq[DIM];
long long nrt;
int n,k;

void read ()
{
    int i;

    scanf ("%d%d",&n,&k);
    for (i=1; i<=n; ++i)
        scanf ("%d",&v[i]);
}

void solve ()
{
    int i,st,dr;

    st=1; dr=0;
    for (i=1; i<=n; ++i)
    {
        for (; st<=dr && v[i]<=v[dq[dr]]; --dr);
        dq[++dr]=i;
        if (i-dq[st]==k)
            ++st;
        if (i>=k)
            nrt+=v[dq[st]];
    }
    printf ("%lld",nrt);
}

int main ()
{
    freopen ("deque.in","r",stdin);
    freopen ("deque.out","w",stdout);

    read ();
    solve ();

    return 0;
}