Binary Search - C

public
yeskendir.sultanov Mar 31, 2024 Never 97
Clone
C++ Cbinsearch.cpp 34 lines (27 loc) | 647 Bytes
1
#include <bits/stdc++.h>
2
#define ll long long
3
4
using namespace std;
5
6
ll w, h, n;
7
8
bool check(ll len) {
9
ll row = (len / w);
10
ll col = (len / h);
11
return (row * col >= n);
12
}
13
14
int main() {
15
std::ios_base::sync_with_stdio(false);
16
cin.tie(0);
17
cout.tie(0);
18
cin >> w >> h >> n;
19
20
ll low = 0, high = min(max(h, w * n), max(w, h * n)), ans = high;
21
22
while (low <= high) {
23
ll mid = (low + high) / 2;
24
if (check(mid)) {
25
ans = mid;
26
high = mid - 1;
27
} else {
28
low = mid + 1;
29
}
30
}
31
32
cout << ans;
33
return 0;
34
}