Cod sursa(job #1333111)

Utilizator Matei1990Botoghina Matei Matei1990 Data 2 februarie 2015 20:17:18
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>

typedef struct deque
{
    int n,p;
}deque;

deque d[5000002];
int v[5000002];

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    int n,k,a,i,j;
    long long s=0;
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;++i)
        scanf("%d",&v[i]);
    i=1;j=0;
    d[0].n=-200000000;

    for(a=1;a<k;++a)
    {
        while(d[j].n>=v[a]&&j>=i)
            --j;
        ++j;
        d[j].n=v[a];
        d[j].p=a;
    }
    for(a=k;a<=n;++a)
    {
        if(d[i].p==a-k)
            ++i;
        while(d[j].n>=v[a]&&j>=i)
            --j;
        ++j;
        d[j].n=v[a];
        d[j].p=a;
        s+=d[i].n;
    }
    printf("%lld\n",s);
    return 0;
}