#include <bits/stdc++.h>
using namespace std;
signed main(){
long long n,m;
cin >> n >> m;
long long a[n], b[n];
for (long long i = 0; i<n; i++){
cin >> a[i];
}
for (long long i = 0; i<n; i++){
cin >> b[i];
a[i] = max(a[i],b[i]);
}
long long lo = 0;
long long hi = 1e18;
long long ans = lo;
long long mid;
while (lo <= hi){
mid = (lo+hi)/2;
//check mid
__int128 net = 0;
for (long long i = 0; i<n; i++){
long long ss = (mid+a[i]-1)/a[i];
if (ss <= m){
net += m-ss;
}
else{
long long cpy = mid;
cpy -= m * a[i];
net -= (cpy+b[i]-1)/b[i];
}
}
if (net >= 0){
ans = max(ans, mid);
lo = mid + 1;
}
else{
hi = mid - 1;
}
}
cout << ans;
return 0;
}
# | 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... |