#include<bits/stdc++.h>
using namespace std;
unsigned long long n,d,a[1000005],b[1000005],m,l,r,mid,z,c;
bool p(unsigned long long x)
{
unsigned long long v1=0;
for(int i=1;i<=n;i++)
{
unsigned long long v2=(a[i]+(b[i]*x));
v1+=(v2/c);
}
return v1>=m;
}
int main()
{
cin>>n>>z>>c;
m=z/c+z%c%2;
for(int i=1;i<=n;i++)
{
cin>>a[i];
r+=a[i]/c;
}
for(int i=1;i<=n;i++)
{
cin>>b[i];
}
if(r>=m)
{
cout<<0;
return 0;
}
l=0,r=1000000000000000000LL;
while(l+1<r)
{
mid=(l+r)/2;
if(p(mid))
{
r=mid;
}
else
{
l=mid;
}
}
cout<<r;
return 0;
}