P1631序列合并,求助,WA
  • 板块学术版
  • 楼主LolaPeppa
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/25 20:33
  • 上次更新2024/4/25 23:14:14
查看原帖
P1631序列合并,求助,WA
1314900
LolaPeppa楼主2024/4/25 20:33

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;
}
2024/4/25 20:33
加载中...