Cod sursa(job #1316021)

Utilizator obidanDan Ganea obidan Data 13 ianuarie 2015 14:18:39
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
using namespace std;

const int NMax = 5000002;
int v[NMax],deq[NMax],n;
int first,last;
long long s;

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

    int i,k;
    cin>>n>>k;
    for(i=1;i<=n;i++)
    {
        cin>>v[i];
    }

    first = 1; last = 0;
    for(i=1;i<=n;i++)
    {

       while(first <= last && v[i] <= v[deq[last]])
        --last;
       deq[++last]=i;
       if(deq[first]== i - k)
        first++;
        if(i>=k)
            s=s+v[deq[first]];

    }
    cout<<s;


}