Submission #1271417

#TimeUsernameProblemLanguageResultExecution timeMemory
1271417witek_cppSelf Study (JOI22_ho_t2)C++20
64 / 100
96 ms4936 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>

using namespace std;
typedef long long ll;

#define st first
#define nd second
#define f(a, c, b) for (int a = c; b > a; a++)
#define pb push_back
#define all(a) a.begin(), a.end()
#define sz(a) int(a.size())

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ll n, m;
    cin >> n >> m;
    vector<ll> a(n);
    vector<ll> b(n);
    f(i, 0, n) cin >> a[i];
    f(i, 0, n) cin >> b[i];
    ll l = 1;
    ll r = 1'000'000'000'000'000'000;
    ll mid;
    while (r > l) {
        mid = (r + l + 1)/2;
        ll ile_czasu = n * m;
        f(i, 0, n) {
            if (a[i] > b[i]) {
                ll p = (mid + a[i] - 1)/a[i];
                if (p <= n) {
                    ile_czasu -= p;
                } else {
                    ile_czasu -= n;
                    ll c = mid - (n * a[i]);
                    ile_czasu -= (c + b[i] - 1)/b[i];
                }
            } else {
                ile_czasu -= (mid + b[i] - 1)/b[i];
            }
            if (ile_czasu < 0) break;
        }
        if (ile_czasu < 0) {
            r = mid - 1;
        } else {
            l = mid;
        }
    }
    cout << r;
    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...