#include<bits/stdc++.h>
using namespace std;
unsigned long long s,L;
unsigned long long h[200100],n;
unsigned long long a[200100];
unsigned long long l,r,mid,ans;
bool check(unsigned long long x){
unsigned long long sum=0;
for(unsigned long long i=0;i<n;i++){
if(h[i]+x*a[i]>=L)sum+=h[i]+x*a[i];
}
return sum>=s;
}
signed main(){
ios::sync_with_stdio(false);
cin>>n>>s>>L;
for(unsigned long long i=0;i<n;i++)cin>>h[i];
for(unsigned long long i=0;i<n;i++)cin>>a[i];
l=0;
r=1000000000000000000;
while(l<=r){
mid=(l+r)/2;
if(check(mid)){
ans=mid;
r=mid-1;
}else{
l=mid+1;
}
}
cout<<ans;
return 0;
}
和别人的正解几乎一样,但只有90分,救我!