#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, a[300010], b[300010];
bool solve(int num) {
int clnum = 0;
for(int i=1; i<=n; i++) {
if(a[i] < b[i]) {
clnum += num/b[i] + (num%b[i] ? 1 : 0);
} else if(num/a[i] + (num%a[i] ? 1 : 0) <= n){
clnum += num/a[i] + (num%a[i] ? 1 : 0);
} else {
clnum += n;
int t = num - a[i]*n;
clnum += t/b[i] + (t%b[i] ? 1 : 0);
}
if(clnum > n*m) return false;
}
return true;
}
signed main() {
cin.tie(0)->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];
}
int l=0, r=1e18;
while(l < r) {
int mid = (l+r)/2;
if(solve(mid)) {
l = mid+1;
} else {
r = mid;
}
}
cout << l-1;
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... |