Cod sursa(job #1199708)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 20 iunie 2014 12:40:19
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>

using namespace std;
int a[5000009],n,i,k,d[5000009],dr,x,st;
long long s;
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);

    scanf("%d%d%d",&n,&k,&a[1]);
    dr=1;d[1]=1;st=1;
    for(i=2;i<=k;++i)
    {
        scanf("%d",&a[i]);
        while(dr && a[i]<=a[d[dr]])
        dr--;

        d[++dr]=i;
    }
     s=a[d[1]];

    for(i=k+1;i<=n;++i)
    {
       scanf("%d",&a[i]);
       while(d[st]<=i-k && st<=dr) st++;

       while(dr>=st && a[i]<=a[d[dr]])
       dr--;
       d[++dr]=i;
       s+=1LL*a[d[st]];

    }
    printf("%lld\n",s);


    return 0;
}