Submission #1213469

#TimeUsernameProblemLanguageResultExecution timeMemory
1213469Hamed_GhaffariSelf Study (JOI22_ho_t2)C++20
62 / 100
176 ms2788 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

const int MXN = 3e5+5;

int n, m, a[MXN], b[MXN];

int32_t main() {
    cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
    cin >> n >> m;
    for(int i=1; i<=n; i++) cin >> a[i];
    for(int i=1; i<=n; i++) cin >> b[i];
    ll l=0, r=1e18+1, mid;
    while(r-l>1) {
        mid = (l+r)>>1;
        ll dif=0;
        for(int i=1; i<=n; i++)
            if(b[i]>=a[i]) {
                if(1ll*b[i]*m>=mid)
                    dif += m - (mid+b[i]-1)/b[i];
                else
                    dif -= (mid-1ll*b[i]*m+b[i]-1)/b[i],
                    dif = max(dif, -1ll*n*m-1);
                }
            else if(1ll*a[i]*m>=mid)
                dif += m - (mid+a[i]-1)/a[i];
            else 
                dif -= (mid-1ll*a[i]*m+b[i]-1)/b[i],
                dif = max(dif, -1ll*n*m-1);
        (dif>=0 ? l : r) = mid;
    }
    cout << l << '\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...