#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |