Submission #1168814

#TimeUsernameProblemLanguageResultExecution timeMemory
1168814jadai007Self Study (JOI22_ho_t2)C++20
100 / 100
127 ms5136 KiB
/* Author : detective conan Problem : JOI21 self study Created : 18/03/2025 10:09 UTC+7 */ #include <bits/stdc++.h> #define int long long #define FOR(i, s, t) for(int i = s; i <= t; ++i) #define rep(i, s, t) for(int i = s; i >= t; --i) #define DB(n, s) cout << n << s #define ANS(n, s) DB(n, s) #define mod (int)(1e9 + 7) #define HAVE_TESTCASE false #define pb push_back #define eb emplace_back #define em emplace #define ph push #define conan cin.tie(nullptr)->sync_with_stdio(false); using namespace std; using u32 = unsigned; using i64 = int64_t; using u64 = unsigned i64; const int MAX_N = 3e5 + 20; int n, m, a[MAX_N], b[MAX_N]; void solve(){ cin >> n >> m; FOR(i, 1, n) cin >> a[i]; FOR(i, 1, n) cin >> b[i]; int l = 0, r = 1e18, ans = -1; while(l <= r){ int mid = (l + r) >> 1ll; int left = n*m; FOR(i, 1, n){ int tmp = mid; if(a[i] > b[i]){ int times = (tmp + a[i] - 1) / a[i]; int use = min(times, m); left -= use; tmp -= a[i]*use; } if(tmp > 0ll){ int times = (tmp + b[i] - 1) / b[i]; left -= times; } if(left < 0ll) break; } if(left >= 0ll) ans = mid, l = mid + 1; else r = mid - 1; } ANS(ans, '\n'); } int32_t main(){ conan; int t = 1; if(HAVE_TESTCASE) cin >> t; while(t--) solve(); }
#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...