Cod sursa(job #1731925)

Utilizator TiiberiuBujor Tiberiu-Cosmin Tiiberiu Data 20 iulie 2016 13:41:28
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
#define BIG 5000010
int P[BIG], Deque[BIG],N,K,i;
int Prim=1,Ultim;
long long S;
int main() {
    
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);
    
    scanf("%d %d ",&N,&K);
    for(i = 1;i<=N;++i)
        scanf("%d ",&P[i]);
    for(i = 1;i <= N;++i){
    
        while(Prim <= Ultim && P[i] <= P[Deque[Ultim]]) Ultim--;
        Deque[++Ultim] = i;
        if(Deque[Prim] == i-K) Prim++;
        if(i >= K) S+= P[Deque[Prim]];
    }
    printf("%lld\n", S);
    return 0;
}