Cod sursa(job #561796)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 21 martie 2011 18:42:36
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <deque>

using namespace std;

int n,k,a[5000002];
deque <int> D;

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d%d",&n,&k);
    int x;
    long long sum=0;
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&x);
        a[i]=x;
        while(D.size()>0&&D.back()>x)
            D.pop_back();
        D.push_back(x);
        if(i-k>=0)
        {
            if(i==k);
            else if(D.front()==a[i-k])
                D.pop_front();
            sum+=D.front();
        }
    }
    printf("%lld\n",sum);
    return 0;
}