Wrong Answer,几乎都 WA 了,求助!感谢!
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long ll;
const int N = 100010;
int n;
ll a[N], b[N];
struct Number
{
ll w;
int x, y;
bool operator <(const Number &W) const{ return w > W.w; }
};
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i ++ ) scanf("%lld", &a[i]);
for (int i = 1; i <= n; i ++ ) scanf("%lld", &b[i]);
sort(a + 1, a + n + 1);
sort(b + 1, b + n + 1);
priority_queue<Number, vector<Number>, less<Number> > q;
for (int i = 1; i <= n; i ++ ) q.push({a[i] + b[1], i, 1});
while (n -- )
{
printf("%lld ", q.top().w);
int r = q.top().x, s = q.top().y;
q.pop();
if (s < n) q.push({a[r] + b[s + 1], r, s + 1});
}
return 0;
}