Cod sursa(job #565959)

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

using namespace std;

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

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

void citire()
{
    scanf ("%d %d ",&n,&k);
    for (int i=0; i<n; i++)
    {
        scanf ("%d ",&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;
}