Submission #1350130

#TimeUsernameProblemLanguageResultExecution timeMemory
1350130guardianecSelf Study (JOI22_ho_t2)C++20
64 / 100
82 ms5132 KiB
#include <bits/stdc++.h>
#define ll unsigned long long
using namespace std;

ll n,m;
vector<ll> a, b;
bool check(ll x) {
    ll k = 0;
    for (int i=0; i<n; i++) {
        if (max(a[i], b[i])==b[i]) {
            k+=(x+b[i]-1)/b[i];
        } else {
            if ((x+a[i]-1)/a[i]<4) {
                k+=(x+a[i]-1)/a[i];
            } else {
                k+=3;
                k+=((x-a[i]*3)+b[i]-1)/b[i];
            }
        }
        if (k>n*m) return 0;
    }

    return (k<=n*m);
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> m;
    a.resize(n);
    b.resize(n);
    for (int i=0; i<n; i++) {
        cin >> a[i];
    }
    for (int i=0; i<n; i++) {
        cin >> b[i];
    }

    ll l = 0;
    ll r = LLONG_MAX-1;

    ll res = 0;
    while(l<=r) {
        ll m = l+(r-l)/2;
        if (check(m)) {
            l=m+1;
            res = m;
        } else {
            r=m-1;
        }
    }

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