Submission #1086212

#TimeUsernameProblemLanguageResultExecution timeMemory
1086212I_am_Polish_GirlSelf Study (JOI22_ho_t2)C++14
62 / 100
87 ms11348 KiB
//#pragma target("arch=icelake-server") #include <iostream> #include <vector> #include <algorithm> #include <map> #include <set> #include <unordered_map> #include <unordered_set> #include <stack> #include <queue> #include <cmath> #include <random> #include <chrono> #include <iomanip> #include <bitset> using namespace std; #define int long long typedef long long ll; typedef long double ld; int log_ = 11; int inf = 1000000007; long long mod = 1000000007; int p = 499; int NADIYA = 39; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, m; cin >> n >> m; vector <int> a(n); vector <int> b(n); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) cin >> b[i]; for (int i = 0; i < n; i++) { a[i] = max(a[i], b[i]); } int l = 0; int r = inf; for (int i = 0; i < n; i++) { r = max(r, a[i] * m); } r++; while (r - l > 1) { int mx = (l + r) / 2; int c = 0; for (int i = 0; i < n; i++) { if (mx <= a[i] * m) { int x = ((mx) / a[i]) + ((mx % a[i]) > 0); c += (m - x); } else { int x = mx - a[i] * m; int y = ((x) / b[i]) + ((x % b[i]) > 0); c -= y; } } if (c >= 0) l = mx; else r = mx; } cout << l; } /*5 1 2 1 2 3 1 2 4 1 1 5 4 */
#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...