#include<iostream>
#include<cstdio>
#include<cmath>
#include<queue>
#define maxn 1000001
using namespace std;
inline int read()
{
int x=0;int k=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')k=-1;c=getchar(); }
while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+(c^48);c=getchar(); }
return x*k;
}
priority_queue<pair<int,int> > q;
struct QWQ
{
int num;
int val;
};
QWQ B[maxn];
int A[maxn];
long long n;
int main()
{
n=read();
for(int i=1;i<=n;i++)
A[i]=read();
for(int i=1;i<=n;i++)
{
B[i].val=read();
B[i].num=1;
int w=B[i].val+A[1];
q.push(make_pair(-w,i));
}
cout<<-q.top().first<<" ";
q.pop();
B[1].num++;
int w=A[B[1].num]+B[1].val;
//cout<<w<<" ";
q.push(make_pair(-w,1));
for(int i=2;i<=n;i++)
{
int numm=q.top().second;
int w=-q.top().first;
q.pop();
cout<<w<<" ";
// cout<<numm<<endl;
B[numm].num++;
int w1=A[B[numm].num]+B[numm].val;
q.push(make_pair(-w1,numm));
}
}
不知道哪里错了