Mai intai trebuie sa te autentifici.

Cod sursa(job #235570)

Utilizator DastasIonescu Vlad Dastas Data 24 decembrie 2008 14:50:33
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>

const int maxn = 5000001;

FILE *in = fopen("deque.in","r"), *out = fopen("deque.out","w");

int n, k;
int a[maxn];
int deque[maxn], st = 1, dr = 0;

void read()
{
    fscanf(in, "%d %d", &n, &k);

    for ( int i = 1; i <= n; ++i )
        fscanf(in, "%d", &a[i]);
}

int main()
{
    read();

    long long s = 0;
    for ( int i = 1; i <= n; ++i )
    {
        while ( st <= dr && a[ deque[dr] ] >= a[i] )
            --dr;
        deque[++dr] = i;

        if ( deque[st] == i - k )
            ++st;

        if ( i >= k )
            s += a[ deque[st] ];
    }

    fprintf(out, "%lld\n", s);

    return 0;
}