https://www.acmicpc.net/problem/2022
2022: 사다리
첫 번째 줄에는 x, y, c에 해당하는 세 개의 양의 실수가 순서대로 입력됩니다. 숫자는 소수점 이하 6자리까지 지정할 수 있으며 3,000,000,000보다 작거나 같습니다.
www.acmicpc.net
1. 방정식 유도 – 숫자의 유사성을 이용하여 방정식을 구합니다.
2. 이분 검색을 사용한 대략적인 유도
#define _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
double x, y, c;
double ans;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> x >> y >> c;
double l{ 0 }, r{ min(x, y) };
double m;
while (r - l >= 0.0001)
{
m = (l + r) / 2;
double tmp = 1 / (1 / sqrt(pow(x, 2) - pow(m, 2))
+ (1 / sqrt(pow(y, 2) - pow(m, 2))));
if (tmp > c) l = m;
else if (tmp < c) r = m;
}
cout << m;
}