#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5+5;
int x[N],a[N],b[N];
int n;
int check(int mid){
int mx=1e9;
for(int i=1;i<=n;i++){
int p= (x[i]-mid*a[i]) / b[i];
mx=min(mx,p);
}
return mx;
}
signed main(){
cin>>n;
int lo=0,hi=1e9;
for(int i=1;i<=n;i++)cin>>x[i];
for(int i=1;i<=n;i++){
cin>>a[i];
hi=min(hi,x[i]/a[i]);
}
for(int i=1;i<=n;i++)cin>>b[i];
while(hi>=lo){
int mid=(hi+lo)/2;
// // urd tlasa ih l baival hoishloy gsn sanaa
if(check(mid)>= check(mid-1)){
lo=mid+1;
}
else{
hi=mid-1;
}
}
int ans=0;
for(int i=-10;i<=10;i++){
int h=lo+i;
if(h<0)continue;
int cnt=1e9;
for(int j=1;j<=n;j++){
if(h*a[j]>x[j]){
cnt=-1e9;
break;
}
cnt=min(cnt, (x[j]-h*a[j])/b[j]);
}
ans=max(ans,cnt+h);
}
cout<<ans;
}