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