#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n;
int cnt,st;
struct node
{
int A;
int S;
}a[100005];
bool cmp(node a,node b)
{
return a.A+a.S*2>b.A+b.S*2;
}
bool cmp2(node a,node b)
{
if((a.S-st)*2>st) return a.A+a.S*2>b.A+b.S*2;
else return a.A>b.A;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].S;
for(int i=1;i<=n;i++)
cin>>a[i].A;
sort(a+1,a+n+1,cmp);
st=a[1].S;
cnt=st*2;
sort(a+2,a+n+1,cmp2);
for(int i=1;i<=n;i++)
{
if(a[i].S>st)
cnt=cnt-st*2+a[i].S*2;
cnt+=a[i].A;
cout<<cnt<<endl;
}
}
Subtask数据只过了第二个,剩下两个WA了。