Submission #1008637

#TimeUsernameProblemLanguageResultExecution timeMemory
1008637makravSelf Study (JOI22_ho_t2)C++14
62 / 100
86 ms11612 KiB
    #define _USE_MATH_DEFINES
    #include <bits/stdc++.h>
     
    using namespace std;
     
    typedef long long ll;
    typedef long double ld;
    typedef vector<int> vei;
    typedef vector<vei> vevei;
     
    #define all(a) (a).begin(), (a).end()
    #define sz(a) (int) a.size()
    #define con cout << "NO\n"
    #define coe cout << "YES\n";
    #define str string
    #define pb push_back
    #define ff first
    #define sc second
    #define ss second
    #define pii pair<int, int>
    #define mxe max_element
    #define mne min_element
    #define stf shrink_to_fit
    #define f(i, l, r) for (int i = (l); i < (r); i++)
    #define double ld
	#define int ll
     
    signed main() {
        ios_base::sync_with_stdio(false);
        cin.tie(nullptr);
        cout.tie(nullptr);
     
        ll n, m; cin >> n >> m;
        vector<int> a(n), b(n);
        f(i, 0, n) { cin >> a[i]; }
        f(i, 0, n) { cin >> b[i]; }
        int L = -1, R = 1e18 + 1;
        while (R - L > 1) {
            int M = (L + R) / 2;
            int need = 0;
            f(i, 0, n) {
                if (need > m * n) break;
                if (b[i] > a[i]) {
                    need += (M + b[i] - 1) / b[i];
                }
                else {
                    if ((M + a[i] - 1) / a[i] <= m) {
                        need += (M + a[i] - 1) / a[i];
                    }
                    else {
                        need += m + (M - a[i] * m + b[i] - 1) / b[i];
                    }
                }
            }
            if (need > m * n) R = M;
            else L = M;
        }
        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...