Cod sursa(job #3031568)

Utilizator Andrei137Neculae Andrei-Fabian Andrei137 Data 20 martie 2023 12:40:18
Problema Deque Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <queue>

typedef long long ll;
typedef std::pair<ll, ll> pair;

int main()
{
    std::ifstream in("deque.in");
    std::ofstream out("deque.out");
    ll n{};
    in >> n;
    ll k{};
    in >> k;

    std::priority_queue<pair, std::vector<pair>, std::greater<pair>> q{};
    ll i{0};
    while (i < k)
    {
        ll temp{};
        in >> temp;
        q.push(std::make_pair(temp, i++));
    }
    ll s{q.top().first};
    q.pop();
    while (i < n)
    {
        while (q.top().second <= i - k)
            q.pop();
        int temp{};
        in >> temp;
        q.push(std::make_pair(temp, i++));
        s += q.top().first;
    }
    out << s;
    in.close();
    out.close();
    return 0;
}