#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
inline int read() {
char ch = getchar(); int x = 0, f = 1;
while(ch < '0' || ch > '9') {
if(ch == '-') f = -1;
ch = getchar();
} while('0' <= ch && ch <= '9') {
x = x * 10 + ch - '0';
ch = getchar();
} return x * f;
}
inline void out(int x)
{
if(x<0){
putchar('-');
x=-x;
}
if(x>9) out(x/10);
putchar(x%10+'0');
}
int b[100010],a[100010],ans[100010];
int main()
{
int n=read(),count=0;
for(int i=0;i<n;i++) a[i]=read();
for(int i=0;i<n;i++) b[i]=read();
sort(a,a+n);sort(b,b+n);
priority_queue <int>q;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
int num=a[i]+b[j];
if(q.size()<n) q.push(num);
else
{
if(q.top()>num)
{
q.pop();q.push(num);
}
else break;
}
}
}
while(!q.empty())
{
ans[count++]=q.top();
q.pop();
}
for(int i=n-1;i>=0;i--) out(ans[i]),printf(" ");
return 0;
}
P1631 序列合并(优先队列)
最新推荐文章于 2023-04-18 17:36:37 发布