Cod sursa(job #1413922)

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

#define Nmax 5000005

using namespace std;

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

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("%d", SOL);

    return 0;
}