#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int n;
long long m,limit;
long long high[maxn];
long long grow[maxn];
bool check(long long num)
{
long long ans=0;
for(int i=1;i<=n;i++)
{
if(high[i]+num*grow[i]>=limit)ans+=high[i]+num*grow[i];
if(ans>=m)return true;
}
return false;
}
int main()
{
scanf("%d%lld%lld",&n,&m,&limit);
for(int i=1;i<=n;i++)
scanf("%lld",&high[i]);
for(int i=1;i<=n;i++)
scanf("%lld",&grow[i]);
long long left=0,right=100000000000000000,flag=0;
while(left<=right)
{
long long mid=(left+right)/2;
if(check(mid))
{
flag=mid;
right=mid-1;
}
else left=mid+1;
}
printf("%lld",flag);
return 0;
}
玄学90,改改右边界每次WA的两个点还不同
1
2
3