Cod sursa(job #2864044)

Utilizator Toaster_KeyboardMihaescu Vlad-Mihai Toaster_Keyboard Data 7 martie 2022 15:27:09
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#pragma region
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#pragma endregion

int main() {
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);
    int n, k = 0;
    scanf("%d%d", &n, &k);
    vector<int> vect(n);

    for (int i = 0; i < n; i++)
        scanf("%d", &vect[i]);

    vector<int> myDeque(n);
    int front = 0, back = -1;
    ll sum = 0;
    for (int i = 0; i < n; i++) {
        while (front <= back && vect[myDeque[back]] >= vect[i])
            back--;
        myDeque[++back] = i;

        if (i - k == myDeque[front])
            front++;

        sum += (i >= k - 1) ? vect[myDeque[front]] : 0;
    }
    printf("%lld", sum);

    fclose(stdin);
    fclose(stdout);
    return 0;
}