Cod sursa(job #1606898)

Utilizator AndreidgDragomir Andrei Valentin Andreidg Data 20 februarie 2016 17:37:21
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>
using namespace std;
int n,k,a[5000001];
int deq[5000001];
long long s=0;
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    int i;
    scanf("%d %d ",&n,&k);
    for(i = 1;i <= n; i++){
        scanf("%d",&a[i]);
    }
    int dr,st;
    dr=1;
    st=0;
    for(i = 1;i <= n; i++){
        while(dr <= st && a[i] <= a[deq[st]])st--;

        st++;
        deq[st]=i;
        if(deq[dr] == i-k)dr++;

        if(i>=k)
        s+=a[deq[dr]];
    }

    printf("%lld\n",s);
    return 0;
}