#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MXN = 3e5+5;
int n, m, a[MXN], b[MXN];
int32_t main() {
cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
cin >> n >> m;
for(int i=1; i<=n; i++) cin >> a[i];
for(int i=1; i<=n; i++) cin >> b[i];
ll l=0, r=1e18, mid; r++;
while(r-l>1) {
mid = (l+r)>>1;
ll dif=0;
for(int i=1; i<=n; i++)
if(b[i]>=a[i]) {
if(1ll*b[i]*m>=mid)
dif += m - (mid+b[i]-1)/b[i];
else
dif -= (mid-1ll*b[i]*m+b[i]-1)/b[i],
dif = max(dif, -1ll*n*m-1);
}
else if(1ll*a[i]*m>=mid)
dif += m - (mid+a[i]-1)/a[i];
else
dif -= (mid-1ll*a[i]*m+b[i]-1)/b[i],
dif = max(dif, -1ll*n*m-1);
(dif>=0 ? l : r) = mid;
}
cout << l << '\n';
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... |