Cod sursa(job #855670)

Utilizator marialivia16Chiorean Maria Livia marialivia16 Data 15 ianuarie 2013 14:30:03
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<cstdio>
#include<cstdlib>
#define MAXN 5000001
int v[MAXN],d[MAXN];
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    int n,k,i;
    long long s=0;
    scanf("%d%d",&n,&k);
    //for(i=1;i<n;i++)
    //scanf("%d",&v[i]);
    int st=1,dr=0;
    for(i=1;i<=n;i++)
    {
                     scanf("%d",&v[i]);
                     while(st<=dr && v[i]<=v[d[dr]])
                                dr--;
                     d[++dr]=i;
                     if(d[st]<i-k+1)st++;
                     if(i>=k) s=s+v[d[st]];
    }
    printf("%lld",s);
    return 0;
}