Submission #1343511

#TimeUsernameProblemLanguageResultExecution timeMemory
1343511hoangtien69Self Study (JOI22_ho_t2)C++20
0 / 100
137 ms5132 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 3e5 + 5;
const int INF = 1e18;

void solve()
{
    int n, m;
    cin >> n >> m;
    vector <int> a(n + 1), b(n + 1);
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 1; i <= n; i++) cin >> b[i];
    int l = 0, r = INF;
    int ans = 0;
    while (l <= r)
    {
        int mid = (l + r) / 2;
        int cnt = 0;
        for (int i = 1; i <= n; i++)
        {
            int cur = max(a[i], b[i]);
            int need = (mid + cur - 1) / cur;
            if (need <= m) cnt += need;
            else
            {
                int free = cur * m;
                int left = mid - free;
                cnt += m;
                cnt += (left + b[i] - 1) / b[i];
            }
        }
        if (cnt <= n * m) l = mid + 1, ans = mid;
        else r = mid - 1;
    }
    cout << ans;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    solve();
}
#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...