제출 #840971

#제출 시각아이디문제언어결과실행 시간메모리
840971Desh03A Plus B (IOI23_aplusb)C++17
100 / 100
88 ms13192 KiB
#include <bits/stdc++.h>

using namespace std;

vector<int> smallest_sums(int n, vector<int> a, vector<int> b) {
    priority_queue<tuple<int, int, int>, vector<tuple<int, int, int>>, greater<tuple<int, int, int>>> q;
    q.push({a[0] + b[0], 0, 0});
    set<pair<int, int>> s;
    vector<int> v;
    while (n--) {
        auto [p, i, j] = q.top();
        q.pop();
        v.push_back(p);
        if (s.find({i + 1, j}) == s.end()) {
            q.push({a[i + 1] + b[j], i + 1, j});
            s.insert({i + 1, j});
        }
        if (s.find({i, j + 1}) == s.end()) {
            q.push({a[i] + b[j + 1], i, j + 1});
            s.insert({i, j + 1});
        }
    }
    return v;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...