Submission #1274260

#TimeUsernameProblemLanguageResultExecution timeMemory
1274260MisterReaperSelf Study (JOI22_ho_t2)C++20
0 / 100
47 ms1604 KiB
// File selfstudy.cpp created on 29.09.2025 at 19:20:10
#include <bits/stdc++.h>

using i64 = long long;

#ifdef DEBUG 
    #include "/home/ahmetalp/Desktop/Workplace/debug.h"
#else
    #define debug(...) void(23)
#endif

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int N, M;
    std::cin >> N >> M;

    std::vector<int> A(N), B(N);
    for (int i = 0; i < N; ++i) {
        std::cin >> A[i];
    }
    for (int i = 0; i < N; ++i) {
        std::cin >> B[i];
    }

    auto check = [&](i64 mid) -> bool {
        i64 sum = 0, emp = 0;
        for (int i = 0; i < N; ++i) {
            if (B[i] >= A[i]) {
                emp += M;
                sum += (mid + B[i] - 1) / B[i];
            } else {
                i64 need = (mid + A[i] - 1) / A[i];
                if (need >= M) {
                    sum += (mid - 1LL * A[i] * M + B[i] - 1) / B[i];
                } else {
                    emp += M - need;
                }
            }
        }
        return sum <= emp;
    };

    i64 lo = 0, hi = i64(1E18);
    while (lo < hi) {
        i64 mid = (lo + hi + 1) >> 1;
        if (check(mid)) {
            lo = mid;
        } else {
            hi = mid - 1;
        }
    }

    std::cout << lo << '\n';

    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...