Cod sursa(job #2306126)

Utilizator rares404AlShaytan - Balasescu Rares rares404 Data 21 decembrie 2018 17:23:10
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <bits/stdc++.h>

const int MV(5 * 1e6 + 5) ;

int dq[MV] ;
int v[MV] ;
long long s ;

int main() {
    freopen("deque.in", "r", stdin) ;
    freopen("deque.out", "w", stdout) ;
    int n, k ;
    register int i ;
    int st(0), dr(-1) ;
    scanf("%d %d", &n, &k) ;
    for (i = 1 ; i <= n ; ++ i) {
        scanf("%d", v + i) ;
        if (st <= dr && dq[st] == i - k) {
            st ++ ;}
        while (st <= dr && v[i] <= v[dq[dr]]) {
            dr -- ;}
        dq[++ dr] = i ;
        if (i >= k) {
            s += v[dq[st]] ;}}
    printf("%lld", s) ;
    return 0 ;}