Submission #1356350

#TimeUsernameProblemLanguageResultExecution timeMemory
1356350gaySelf Study (JOI22_ho_t2)C++20
100 / 100
112 ms5132 KiB
#include <bits/stdc++.h>
#include <experimental/random>
#include <random>

//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;

using namespace std;

using ld = long double;
using ll = long long;

const ll INF = 3e18, MOD = 1e9 + 7;

void solve();

signed main() {
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    int q = 1;
    //cin >> q;
    while (q--) {
        solve();
    }
}

void solve() {
    ll n, m; cin >> n >> m;
    vector<ll> a(n), b(n);
    for (int i = 0; i < n; i++) cin >> a[i];
    for (int i = 0; i < n; i++) cin >> b[i];
    ll l = 0, r = INF;
    while (r - l > 1) {
        ll mid = (l + r) / 2;
        ll all = 0;
        for (int i = 0; i < n; i++) {
            if (all > n * m) break;
            if (b[i] >= a[i]) all += (mid + b[i] - 1) / b[i];
            else {
                ll x = min(m, (mid + a[i] - 1) / a[i]);
                all += x; ll nado = max(0ll, mid - a[i] * x);
                all += (nado + b[i] - 1) / b[i];
            }
        }
        if (all <= n * m) l = mid;
        else r = mid;
    }
    cout << l;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...