1 #include<bits/stdc++.h>
2 #define ll long long
3 #define N 200010
4 using namespace std;
5 ll f[N][20],g[N][20];
6 int n,v[N],w[N],dep[N],d[N];
7
8 int main(){
9 scanf("%d",&n);dep[1]=1;
10 for(int i=1;i<=n;i++)
11 scanf("%d",&v[i]);
12 for(int i=2;i<=n;i++){
13 scanf("%d",&w[i]);
14 dep[i]=dep[i>>1]+1;
15 d[i]=d[i>>1]+w[i];
16 }
17 for(int i=n;i;i--){
18 if((i<<1)>n){
19 for(int j=0;j<=dep[i];j++){
20 int fa=i>>(dep[i]-j+1),to=(i>>(dep[i]-j))^1;
21 f[i][j]=1ll*(d[i]+d[to]-2*d[fa])*v[to];
22 }
23 }
24 else if((i<<1)==n){
25 for(int j=0;j<=dep[i];j++){
26 int to=i<<1;
27 f[i][j]=f[to][j]+1ll*v[to]*w[to];
28 }
29 }
30 else{
31 int ls=i<<1,rs=ls|1;
32 for(int j=0;j<=dep[i];j++)
33 f[i][j]=min(1ll*v[ls]*w[ls]+f[ls][dep[ls]]+f[rs][j],1ll*v[rs]*w[rs]+f[rs][dep[rs]]+f[ls][j]);
34 }
35 }
36 for(int i=n;i;i--){
37 if((i<<1)>n){
38 for(int j=0;j<=dep[i];j++){
39 int fa=i>>(dep[i]-j);
40 g[i][j]=1ll*(d[i]-d[fa])*v[fa];
41 }
42 }
43 else if((i<<1)==n){
44 int s=i<<1;
45 for(int j=0;j<=dep[i];j++)
46 g[i][j]=1ll*v[s]*w[s]+g[s][j];
47 }
48 else{
49 int ls=i<<1,rs=ls|1;
50 for(int j=0;j<=dep[i];j++)
51 g[i][j]=min(1ll*v[ls]*w[ls]+f[ls][dep[ls]]+g[rs][j],1ll*v[rs]*w[rs]+f[rs][dep[rs]]+g[ls][j]);
52 }
53 }
54 ll ans=g[1][0];
55 for(int i=2;i<=n;i++){
56 ll ret=g[i][dep[i]-1];
57 for(int x=i;x>1;x>>=1){
58 int y=x^1;
59 if(y>n)ret+=1ll*v[x>>2]*w[x>>1];
60 else ret+=1ll*v[y]*w[y]+g[y][dep[y]-2];
61 }
62 ans=min(ans,ret);
63 }
64 printf("%lld\n",ans);
65 return 0;
66 }