Cod sursa(job #3238981)

Utilizator stanrares1002@gmail.comRares Stan [email protected] Data 1 august 2024 09:01:40
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <deque>

using namespace std;

#define pb push_back
#define ll long long
#define NMAX 5000005
#define INF 1000000000

int v[NMAX];
deque<int> dq;

int main() {
    ifstream cin("deque.in");
    ofstream cout("deque.out");
    int n, k;
    cin >> n >> k;
    for (int i = 1; i <= k; i++) {
        cin >> v[i];
        while (!dq.empty() && v[dq.back()] > v[i])
            dq.pop_back();
        dq.push_back(i);
    }
    int ans = 0;
    ans += v[dq.front()];
    for (int i = k + 1; i <= n; i++) {
        cin >> v[i];
        while (!dq.empty() && v[dq.back()] > v[i])
            dq.pop_back();
        dq.push_back(i);
        if (!dq.empty() && i - dq.front() + 1 > k)
            dq.pop_front();
        ans += v[dq.front()];
    }
    cout << ans;
    return 0;
}