Cod sursa(job #2921666)

Utilizator tzancauraganuTzanca Uraganu tzancauraganu Data 1 septembrie 2022 12:38:29
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <cassert>
#include <cstring>
#include <set>
#include <unordered_map>
#include <memory>
#include <deque>

using namespace std;

int main() {
    ifstream f("deque.in");
    ofstream g("deque.out");

    int N, K;
    f >> N >> K;
    long long sum = 0;
    int vals[N], pos[N];
    int left = 0, right = 0;
    for (int i = 0; i < N; i++) {
        int X;
        f >> X;
        while (left < right && vals[right - 1] >= X)
            --right;
        vals[right] = X;
        pos[right++] = i;
        while (left < right && pos[left] <= i - K)
            ++left;
        
        if (i + 1 >= K)
            sum += vals[left];
    }

    g << sum << '\n';
    

    f.close();
    g.close();
    return 0;
}