// File selfstudy.cpp created on 29.09.2025 at 19:20:10
#include <bits/stdc++.h>
using i64 = long long;
#ifdef DEBUG
#include "/home/ahmetalp/Desktop/Workplace/debug.h"
#else
#define debug(...) void(23)
#endif
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int N, M;
std::cin >> N >> M;
std::vector<int> A(N), B(N);
for (int i = 0; i < N; ++i) {
std::cin >> A[i];
}
for (int i = 0; i < N; ++i) {
std::cin >> B[i];
}
auto check = [&](i64 mid) -> bool {
i64 sum = 0, emp = 0;
for (int i = 0; i < N; ++i) {
if (B[i] >= A[i]) {
emp += M;
sum += (mid + B[i] - 1) / B[i];
} else {
i64 need = (mid + A[i] - 1) / A[i];
if (need >= M) {
sum += (mid - 1LL * A[i] * M + B[i] - 1) / B[i];
} else {
emp += M - need;
}
}
}
return sum <= emp;
};
i64 lo = 0, hi = i64(1E18);
while (lo < hi) {
i64 mid = (lo + hi + 1) >> 1;
if (check(mid)) {
lo = mid;
} else {
hi = mid - 1;
}
}
std::cout << lo << '\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... |