Submission #1110759

#TimeUsernameProblemLanguageResultExecution timeMemory
1110759FlandreSelf Study (JOI22_ho_t2)C++17
0 / 100
101 ms10904 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; // loal is the cutest girl #define ll long long #define int ll #define ld long double #define pow2(x) (x)*(x) #define le left #define ri right #define fi first #define se second #define pb push_back #define all(v) v.begin(), v.end() #define pii pair<int, int> #define pll pair<long long, long long> #define isvowel(x) (x) == 'a' || (x) == 'i' || (x) == 'u' || (x) == 'e' || (x) == 'o' #define ordered_set tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> const ld EPS = 1e-9; const ld PI = 3.141592653589793238462643383279502884197169399375105820974944; const int maxn = 3e5+5; int n, m; int a[maxn]; int b[maxn]; bool solve(ll amo) { ll needed = 0; for (int i = 0; i < n; i++) { int now = a[i]*m; if (now < amo) { needed += (amo-now+b[i]-1)/b[i]; } else { needed -= m-(amo+a[i]-1)/a[i]; } } return needed <= 0; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { cin >> b[i]; a[i] = max(a[i], b[i]); } ll l = 1, r = 1e18; while (l < r) { ll mid = (l+r+1)/2; if (solve(mid)) l = mid; else r = mid-1; } 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...