#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;
for(int i=1;i<=n;i++)cin>>x[i];
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
int lo=0,hi=1e9;
while(hi>=lo){
int mid=(hi+lo)/2;
int L=0,R=mid;
bool FLAG=1;
for(int i=1;i<=n;i++){
int d=abs(a[i]-b[i]);
if(d==0){
if(b[i]*mid>x[i]){
FLAG=0; break;
}
else continue;
}
else if(a[i]>=b[i]){
if(b[i]*mid>x[i]){
FLAG=0; break;
}
R=min(R,(x[i]-b[i]*mid)/d);
}
else{
if(a[i]*mid>x[i]){
FLAG=0; break;
}
L=max(L,mid-(x[i]-a[i]*mid)/d);
}
}
if(FLAG and R>=L){
lo=mid+1;
}
else{
hi=mid-1;
}
}
cout<<hi;
}