Cod sursa(job #1413925)

Utilizator BaTDucKMocanu George BaTDucK Data 2 aprilie 2015 10:58:22
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<bits/stdc++.h>

#define Nmax 5000005

using namespace std;

int N, K, Deq[Nmax], Ind_D[Nmax], el, Finish, Start = 1;
long long SOL;

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

    scanf("%d%d", &N, &K);

    for(int i = 1; i <= N; ++ i) {
        scanf("%d", &el);
        while(Finish >= Start && el <= Deq[Finish])
            -- Finish;
        Deq[++Finish] = el;
        Ind_D[Finish] = i;
        if(Ind_D[Start] == i - K)
            ++ Start;
        if(i >= K)
            SOL += Deq[Start];
    }

    printf("%lld", SOL);

    return 0;
}