#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;
typedef long long ll;
#define st first
#define nd second
#define f(a, c, b) for (int a = c; b > a; a++)
#define pb push_back
#define all(a) a.begin(), a.end()
#define sz(a) int(a.size())
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll n, m;
cin >> n >> m;
vector<ll> a(n);
vector<ll> b(n);
f(i, 0, n) cin >> a[i];
f(i, 0, n) cin >> b[i];
ll l = 1;
ll r = 1'000'000'000'000'000'000;
ll mid;
while (r > l) {
mid = (r + l + 1)/2;
ll ile_czasu = n * m;
f(i, 0, n) {
if (a[i] > b[i]) {
ll p = (mid + a[i] - 1)/a[i];
if (p <= m) {
ile_czasu -= p;
} else {
ile_czasu -= m;
ll c = mid - (m * a[i]);
ile_czasu -= (c + b[i] - 1)/b[i];
}
} else {
ile_czasu -= (mid + b[i] - 1)/b[i];
}
if (ile_czasu < 0) break;
}
if (ile_czasu < 0) {
r = mid - 1;
} else {
l = mid;
}
}
cout << r;
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... |