Cod sursa(job #565956)

Utilizator bogfodorBogdan Fodor bogfodor Data 28 martie 2011 14:49:41
Problema Deque Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#define Lmax 5000000

using namespace std;

int n,k;
long long s=0;

FILE *fin=freopen("deque.in","r",stdin);
FILE *fout=freopen("deque.out","w",stdout);

struct coada
{
    int x;
    int p;
}c[Lmax];

void citeala()
{
    int sf=0;
    int inc=0;
    for(int i=0;i<n;i++)
    {
        int x;
        scanf("%d",&x);
        while(c[sf-1].x>x && sf>=inc && sf>0)
            sf--;
        c[sf].x=x;
        c[sf++].p=i;
        if(c[inc].p+k<=i && i>0)
            inc++;
        if(i>=k-1)
            s+=c[inc].x;
    }
}

int main()
{
    scanf("%d %d", &n,&k);
    citeala();
    printf("%lld\n",s);
    return 0;
}