#include <iostream>
#include <cstdio>
#include <queue>
const int N = 1e5 + 3;
int a[N], b[N], n;
struct num{
int x;
int y;
int value;
num(int m, int n) : x(m), y(n) {
value = a[m] + b[n];
}
friend bool operator < (num m,num n) {
return m.value > n.value;
}
};
std::priority_queue<num> q;
int main(){
std::cin >> n;
for(int i = 1; i <= n; i++) std::cin >> a[i];
for(int i = 1; i <= n; i++) std::cin >> b[i];
num a(1, 1);
q.push(a);
while(n--) {
std::cout << q.top().value << " \n"[n==0];
num m(q.top().x + 1, q.top().y);
num n(q.top().x, q.top().y + 1);
q.pop();
q.push(m);
q.push(n);
}
return 0;
}
这个 WA on #2~10 需要错误性解析