Submission #1164297

#TimeUsernameProblemLanguageResultExecution timeMemory
1164297ChottuFSelf Study (JOI22_ho_t2)C++20
100 / 100
277 ms5104 KiB
#include <bits/stdc++.h>
using namespace std;

signed main(){
    long long n,m;
    cin >> n >> m;
    long long a[n], b[n];
    for (long long i = 0; i<n; i++){
        cin >> a[i];
    }
    for (long long i = 0; i<n; i++){
        cin >> b[i];
        a[i] = max(a[i],b[i]);
    }
    long long lo = 0;
    long long hi = 1e18;
    long long ans = lo;
    long long mid;
    while (lo <= hi){
        mid = (lo+hi)/2;
        //check mid
        __int128 net = 0;
        for (long long i = 0; i<n; i++){
            long long ss = (mid+a[i]-1)/a[i];
            if (ss <= m){
                net += m-ss;
            }
            else{
                long long cpy = mid;
                cpy -= m * a[i];
                net -= (cpy+b[i]-1)/b[i];
            }
        }
        if (net >= 0){
            ans = max(ans, mid);
            lo = mid + 1;
        }
        else{
            hi = mid - 1;
        }
    }
    cout << ans;
    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...