Submission #624429

#TimeUsernameProblemLanguageResultExecution timeMemory
624429QwertyPiSelf Study (JOI22_ho_t2)C++14
100 / 100
574 ms11504 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int N = 3e5 + 10; int a[N], b[N]; int n, m; bool check(int x){ __int128_t remain = n * m; for(int i = 0; i < n; i++){ __int128_t y = x; if(b[i] > a[i]) a[i] = b[i]; __int128_t r1 = min((y + a[i] - 1) / a[i], (__int128_t) m); remain -= r1; y -= r1 * a[i]; __int128_t r2 = (y + b[i] - 1) / b[i]; if(r2 >= INT64_MAX) return false; remain -= max((__int128_t) 0LL, r2); } return remain >= 0; } int32_t main(){ cin >> n >> m; for(int i = 0; i < n; i++){ cin >> a[i]; } for(int i = 0; i < n; i++){ cin >> b[i]; } int l = 0, r = 1e18; while(l != r){ if(check((l + r + 1) / 2)){ l = (l + r + 1) / 2; }else{ r = (l + r + 1) / 2 - 1; } } cout << l << endl; }
#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...