Cod sursa(job #1256408)

Utilizator seby5381Marinescu Sebastian seby5381 Data 6 noiembrie 2014 11:04:50
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
int u,p,a[5000007],i,n,k,x,ii,q,uu,b[5000007];
long long s;
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d%d",&n,&k);
    p=1;
    u=0;
    a[0]=-111111;
    q=0;
    uu=0;
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        if(a[u]<=x)
        {
            u++;
            a[u]=x;
            b[u]=i;
        }
        else
        {
            while(a[u]>x&&u>=p)
            {
                u--;
            }
            u++;
            a[u]=x;
            b[u]=i;
        }
        if(i-b[p]>=k)
            p++;
        if(i>=k)
            s+=a[p];
    }
    printf("%lld",s);
    return 0;
}