#include <bits/stdc++.h>
using namespace std;
long long n,m,a[300001],b[300001];
bool c(long long x){
long long p=n*m,c=0;
for (int i=1;i<=n;i++){
long long tx=x;
if (a[i]>b[i]){
p-=min(m,(tx-1)/a[i]+1);
tx-=a[i]*m;
}
if (tx>0) c+=(tx-1)/b[i]+1;
if (c>p) return 0;
}
return 1;
}
int main(){
cin>>n>>m;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=n;i++) cin>>b[i];
long long l=1,r=1e18,mi;
while (l<=r){
mi=(l+r)/2;
if (c(mi)) l=mi+1;
else r=mi-1;
}
cout<<r<<"\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |