제출 #1299967

#제출 시각아이디문제언어결과실행 시간메모리
1299967kantaponzSelf Study (JOI22_ho_t2)C++20
100 / 100
119 ms5128 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
ll N, M;
ll A[300005], B[300005];

ll ceilD(ll a, ll b) {
    if (a % b == 0) {
        return a / b;
    }
    return (a / b) + 1LL;
}

int main() {
    ios_base::sync_with_stdio(0), cin.tie(0);
    cin >> N >> M;
    for (int i = 1; i <= N; i++) cin >> A[i];
    for (int i = 1; i <= N; i++) cin >> B[i], A[i] = max(A[i], B[i]);
    ll l = 1, r = 1e18;
    while (l <= r) {
        ll mid = (l + r) >> 1;
        ll hp = mid;
        ll X = 0, Y = 0;
        ll cnt = 0;
        for (int i = 1; i <= N; i++) {
            ll m = ceilD(mid, A[i]);
            if (m <= M) {
                cnt += m;
            } else {
                hp = mid - A[i] * M;
                cnt += M + ceilD(hp, B[i]);
            }
            if (cnt > N * M) break;
        }

        if ((cnt <= N * M)) {
            l = mid + 1;
        } else {
            r = mid - 1;
        }
    }

    cout << r;
}
#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...