Cod sursa(job #2695731)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 14 ianuarie 2021 13:06:53
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include<cstdio>
#define N 5000001
int v[N],d[N],p=1,u,i,n,k;
long long s;
int main()
{
    freopen("deque.in","r",stdin),freopen("deque.out","w",stdout),scanf("%d%d",&n,&k);
    for(i=1;i<=n;i++)
        scanf("%d",v+i);
    for(i=1;i<k;i++)
    {
        while(p<=u&&v[i]<=v[d[u]])
            u--;
        d[++u]=i;
    }
    for(i=k;i<=n;i++)
    {
        while(p<=u&&v[i]<=v[d[u]])
            u--;
        d[++u]=i;
        if(d[p]==i-k)
            p++;
        s+=v[d[p]];
    }
    printf("%lld",s);
}