Cod sursa(job #3173622)

Utilizator richardbaczur1Baczur Richard richardbaczur1 Data 23 noiembrie 2023 13:33:39
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

#define NMAX 5000005

int n, k, v[NMAX], d[NMAX];


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", &v[i]);
    }
    long long sum = 0;
    
    int f = 1, b = 0;
    for (int i = 1; i <= n; ++i) {
        while (f <= b && v[i] <= v[d[b]]) b--;
        
        d[++b] = i;
        
        if (d[f] == i - k) ++f;
        if (i >= k) sum += v[d[f]];
    }
    
    printf("%lld", sum);
    
    fclose(stdin);
    fclose(stdout);

    return 0;
}