Cod sursa(job #1045971)

Utilizator the@EyE@Postavaru Stefan the@EyE@ Data 2 decembrie 2013 15:14:13
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>
#include<deque>

using namespace std;

int n,k;
long long s=0;

struct nr
{
    int ind,val;
};

deque<nr> Q;

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;++i)
    {
        if(i-k>=Q[0].ind)Q.pop_front();
        nr e;
        scanf("%d",&e.val);
        e.ind=i;
        while(Q.size()>0&&e.val<=Q.back().val)Q.pop_back();
        Q.push_back(e);
        if(i>=k)s+=Q[0].val;
    }
    printf("%lld\n",s);
    return 0;
}