Submission #1295433

#TimeUsernameProblemLanguageResultExecution timeMemory
1295433hynmjSelf Study (JOI22_ho_t2)C++20
0 / 100
70 ms2548 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
const long long N = 1e6 + 5;
int a[N];
int b[N];
int n, m;
bool satisfied(int k)
{
    int courses = 0;
    for (int i = 0; i < n; i++)
    {
        int usedA = min(m, (k + a[i] - 1) / a[i]);
        int left = k - usedA * a[i];
        int usedB = (left + b[i] - 1) / b[i];
        courses += usedA + usedB;
    }
    return courses <= n * m;
}
void solve()
{
    cin >> n >> m;
    int k = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    for (int i = 0; i < n; i++)
    {
        cin >> b[i];
        a[i] = max(a[i], b[i]);
        k = max(k, a[i]);
    }
    int l = 0, r = 1e17 + 1;
    while (r - l > 1)
    {
        int mid = (r + l) / 2;
        satisfied(mid) ? (l = mid) : (r = mid);
    }
    cout << l << endl;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);
    int t = 1;
    // cin >> t;
    for (int i = 1; i <= t; i++)
    {
        // cout << "Case #" << i << ':' << ' ';
        solve();
        cout << endl;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...