제출 #1256382

#제출 시각아이디문제언어결과실행 시간메모리
1256382tvgkSelf Study (JOI22_ho_t2)C++20
100 / 100
131 ms5136 KiB
#include<bits/stdc++.h> using namespace std; #define task "a" #define se second #define fi first #define ll long long #define ii pair<ll, ll> const long mxN = 3e5 + 7; const ll inf = 1e18; ll course[mxN], fr[mxN], m, n; bool Binary(ll mid) { ll req = m * n; for (int i = 1; i <= n; i++) { ll tmp = mid; if (course[i] > fr[i]) { ll cnt = min(m, (tmp + course[i] - 1) / course[i]); req -= cnt; tmp -= cnt * course[i]; } tmp = max(0LL, tmp); req -= (tmp + fr[i] - 1) / fr[i]; if (req < 0) return 0; } return 1; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen(task".INP", "r", stdin); //freopen(task".OUT", "w", stdout); cin >> n >> m; for (int i = 1; i <= n; i++) cin >> course[i]; for (int i = 1; i <= n; i++) cin >> fr[i]; ll l = 0, r = inf, ans = 0; while (l <= r) { ll mid = (l + r) / 2; if (Binary(mid)) { ans = mid; l = mid + 1; } else r = mid - 1; } cout << ans; }
#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...