Cod sursa(job #1315631)

Utilizator priestnoobFMI - Dan Nema priestnoob Data 12 ianuarie 2015 22:43:44
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>
using namespace std;

#define nmax 5000005

int n,k,v[nmax],f,b,deq[nmax];
long long s;

void citire()
{
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;++i) scanf("%d",&v[i]);
}

void solve()
{
    f=1,b=0;
    for(int i=1;i<=n;++i)
    {
        while(f<=b && v[i]<=v[deq[b]] ) b--;
        deq[++b]=i;
        if(deq[f]==i-k) f++;
        if(i>=k) s+=v[deq[f]];
    }
    printf("%lld",s);
}

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    citire();
    solve();
}