int a[100010],f[100010],n,ans;
void qsort(int l,int r)
{
int i=l,j=r,mid=a[(l+r)/2],t;
while(i<=j)
{
while(a[i]<mid) i++;
while(a[j]>mid) j--;
if(i<=j)
{
t=a[i]; a[i]=a[j]; a[j]=t;
i++; j--;
}
}
if(l<j) qsort(l,j);
if(i<r) qsort(i,r);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&f[i]);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
qsort(1,n-1);
ans=f[n]*2+a[n]; printf("%d\n",ans);
for(int i=n-1;i>=1;i--) { ans+=a[i]; printf("%d\n",ans); }
return 0;
}
int a[100010],f[100010],n,ans;
void qsort(int l,int r)
{
int i=l,j=r,mid=a[(l+r)/2],t;
while(i<=j)
{
while(a[i]<mid) i++;
while(mid<a[j]) j--;
if(i<=j)
{
t=a[i]; a[i]=a[j]; a[j]=t;
i++; j--;
}
}
if(l<j) qsort(l,j);
if(i<r) qsort(i,r);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&f[i]);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
qsort(1,n-1);
ans=f[n]*2+a[n]; printf("%d\n",ans);
for(int i=n-1;i>=1;i--) { ans+=a[i]; printf("%d\n",ans); }
return 0;
}
int a[100010],f[100010],n,ans;
void qsort(int l,int r)
{
int i=l,j=r,mid=a[(l+r)/2],t;
while(i<=j)
{
while(a[i]<mid) i++;
while(mid<a[j]) j--;
if(i<=j)
{
t=a[i]; a[i]=a[j]; a[j]=t;
i++; j--;
}
}
if(l<j) qsort(l,j);
if(i<r) qsort(i,r);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&f[i]);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
qsort(1,n-1);
ans=f[n]*2+a[n]; printf("%d\n",ans);
for(int i=n-1;i>=1;i--) { ans+=a[i]; printf("%d\n",ans); }
return 0;
}