Cod sursa(job #1314055)

Utilizator danielmaxim95FMI Maxim Daniel danielmaxim95 Data 11 ianuarie 2015 14:47:46
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>
#define NMAX 5000003

using namespace std;

int v[NMAX],d[NMAX],pr=1,ul=0,n,k;
long long int s=0;


int main()
{
    int i;
    FILE *f=fopen("deque.in","r");

    fscanf(f,"%d%d",&n,&k);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    fclose(f);

    for (i=1;i<=n;i++)
    {
        while((v[i]<=v[d[ul]])&&(pr<=ul))
            ul--;
        d[++ul]=i;
        if(d[pr]==i-k)
            pr++;
        if(i>=k)
            s+=v[d[pr]];
    }

    f=fopen("deque.out","w");
    fprintf(f,"%lld",s);
    fclose(f);
    return 0;
}