Cod sursa(job #3148389)

Utilizator patrick_burasanPatrick Burasan patrick_burasan Data 31 august 2023 17:35:28
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <deque>

using namespace std;

ifstream cin("deque.in");
ofstream cout("deque.out");

int const NMAX = 5000005;
int n, k, a[NMAX];
long long ans;
deque<int> q;

int main() {
    cin >> n >> k;
    int i;
    for (i = 1; i <= n; i++)
        cin >> a[i];
    for (i = 1; i <= k; i++) {
        while (!q.empty() && a[q.back()] >= a[i])
            q.pop_back();
        q.push_back(i);
    }
    ans += a[q.front()];
    for (i = k + 1 ; i <= n; i++) {
        while (!q.empty() && a[q.back()] >= a[i])
            q.pop_back();
        q.push_back(i);
        if (q.front() == i - k)
            q.pop_front();
        ans += a[q.front()];
    }
    cout << ans << '\n';
    cin.close();
    cout.close();
    return 0;
}