Describe crossedladder/곽병학 here
#include<iostream>
#include<vector>
#include <algorithm>
#include <math.h>
#include <cmath>
using namespace std;
double x,y,c;
double ft(double t) {
return c/(sqrt(pow(x,2) - pow(t,2))) + c/(sqrt(pow(y,2) - pow(t,2))) -1;
}
double bsearch(double low, double high) {
double mid = (low + high)/2.0;
double fm = ft(mid);
double eps = 0.000001;
if(abs(fm) < eps)
return mid;
double fl = ft(low);
if(fl * fm < 0)
return bsearch(low, mid);
else
return bsearch(mid, high);
}
int main() {
freopen("in.txt", "r", stdin);
cin>>x>>y>>c;
double min = x>y ? y : x;
double ans = bsearch(0, min);
cout.precision(3);
cout<<std::fixed<<ans<<endl;
return 0;
}