Cod sursa(job #565950)

Utilizator TeodoraTanaseTeodora Tanase TeodoraTanase Data 28 martie 2011 14:47:52
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <cstdio>
#define M 5000000

using namespace std;

long long n, k, s, p, sf, suma;

struct coada
{
    long long i, x;
} a[M];

void citire()
{
    scanf ("%lld %lld ",&n,&k);
    for (int i=0; i<n; i++)
    {
        scanf ("%lld ",&s);
        while (sf!=p && s<a[sf-1].x)
            sf--;
        a[sf].x=s;
        a[sf++].i=i;
        if (a[p].i<=i-k)
            p++;
        if (i+1>=k)
            suma+=a[p].x;
    }
}

int main()
{
    freopen ("deque.in","r",stdin);
    freopen ("deque.out","w",stdout);
    citire();
    printf ("%lld\n",suma);
    return 0;
}