This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <queue>
#include <set>
#include <map>
#define INF 2e18
using namespace std;
typedef long long ll;
ll a[300005], b[300005];
void solve()
{
ll n, m; cin >> n >> m;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 1; i <= n; i++) cin >> b[i];
ll lo = 0; ll hi = INF;
while (lo < hi) {
ll mid = (lo + hi + 1) / 2;
ll sum = 0;
for (int i = 1; i <= n; i++) {
if (b[i] >= a[i]) sum += (mid - 1) / b[i] + 1;
else if (mid <= a[i] * m) sum += (mid - 1) / a[i] + 1;
else sum += m + (mid - a[i] * m - 1) / b[i] + 1;
if (sum > INF) break;
}
if (sum > n * m)hi = mid - 1;
else lo = mid;
}
cout << lo << "\n";
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int t = 1;// cin>>t;
while (t--) solve();
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... |