Submission #984782

#TimeUsernameProblemLanguageResultExecution timeMemory
984782vjudge1Self Study (JOI22_ho_t2)C++17
62 / 100
500 ms11348 KiB
#include<bits/stdc++.h> #define ft first #define sd second #define pb push_back #define nl "\n" #define int ll typedef long long ll; typedef long double ld; using namespace std; const int mod = 1e9 + 7; const int N = 2000; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T = 1; while(T--) { int n, m; cin >> n >> m; int a[n + 1], b[n + 1], mn = 1e18, mx = 0; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int i = 1; i <= n; i++) { cin >> b[i]; a[i] = max(a[i], b[i]); mn = min( mn, a[i] * m); mx = max( mx, a[i] * m); } int l = mn, r = mx + 1; while(l + 1 < r) { int mid = (l + r) / 2; int s = 0; for (int i = 1; i <= n; i++) { if (m >= (mid - 1) / a[i] + 1) { s += (m - ((mid - 1) / a[i] + 1)); } else { int res = mid - a[i] * m; s -= ((res - 1) / b[i] + 1); } } if (s >= 0) { l = mid; } else { r = mid; } } cout << l << nl; } }
#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...