Cod sursa(job #960341)

Utilizator mihail.jianuJianu Mihail mihail.jianu Data 10 iunie 2013 11:38:23
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<cstdio>
const int N=5000001;
int v[N],d[N];
long long s;
int main(){
    int n,k,f,b,i;
    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]);
    f=1;
    b=0;
    for(i=1;i<=n;i++){
        while(f<=b && v[i]<=v[d[b]])
            b--;
        d[++b]=i;
        if(d[f]==i-k)
            f++;
        if(i>=k)
            s+=v[d[f]];
    }
    printf("%I64d\n",s);
    return 0;
}