Cod sursa(job #561636)

Utilizator acelasi7Tudor Maxim acelasi7 Data 20 martie 2011 22:09:33
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
#include<fstream>
#include<limits.h>
using namespace std;

#define minf INT_MIN

int deq[5000002];
int v[5000002];

int main()
{

    long long s=0;
    int n,k,i,lf,rt;

    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);

    scanf("%d%d",&n,&k);

    rt=0;
    lf=1;
    v[0]=minf;
    for(i=1;i<=n;++i)
    {
        scanf("%d",&v[i]);
        while(lf<=rt&&v[deq[rt]]>v[i])
            --rt;
        deq[++rt]=i;
        if(deq[lf]<=i-k)
            ++lf;
        if(i>=k)
            s+=v[deq[lf]];
    }
    printf("%lld\n",s);
    return 0;
}