제출 #1194020

#제출 시각아이디문제언어결과실행 시간메모리
1194020exoworldgdA Plus B (IOI23_aplusb)C++20
100 / 100
92 ms12796 KiB
#include <bits/stdc++.h>
#define tiii tuple<int,int,int>
#define pii pair<int,int>
using namespace std;
vector<int> smallest_sums(int n, vector<int> a, vector<int> b) {
    sort(a.begin(),a.end()); sort(b.begin(),b.end());
    vector<int> res;
    priority_queue<tiii,vector<tiii>,greater<tiii>> pq;
    set<pii> visited;
    pq.emplace(a[0]+b[0],0,0);
    visited.emplace(0,0);
    while (res.size() < n) {
        auto [s,i,j] = pq.top(); pq.pop();
        res.push_back(s);
        if (i+1 < n && !visited.count({i+1,j})) {
            pq.emplace(a[i+1]+b[j],i+1,j);
            visited.emplace(i+1,j);
        }
        if (j+1 < n && !visited.count({i,j+1})) {
            pq.emplace(a[i]+b[j+1],i,j+1);
            visited.emplace(i,j+1);
        }
    }
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...