#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 333333;
int n, m, a[N], b[N];
int _div(int _a, int _b){
if(_a % _b) return _a / _b + 1;
return _a / _b;
}
bool ok(int x){
int cnt = 0;
for(int i = 1;i<=n;i++){
if(a[i] * m < x){
cnt += m + _div(x - a[i] * m, b[i]);
}else{
cnt += _div(x, a[i]);
}
}
return cnt <= n * m;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m;
for(int i = 1;i<=n;i++) cin >> a[i];
for(int i = 1;i<=n;i++) cin >> b[i], a[i] = max(a[i], b[i]);
int l = 1, r = 1e18, ans = 1;
while(l <= r){
int md = (l + r) / 2;
if(ok(md)){
ans = md;
l = md + 1;
}else{
r = md - 1;
}
}
cout << ans;
}
| # | 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... |