#include #include #include #include using namespace std; int main(){ int X_a,X_b; int Y_a,Y_b; cin >> X_a >> Y_a; cin >> X_b >> Y_b; assert(0 < X_a && X_a < 1000); assert(0 < Y_a && Y_a < 1000); assert(0 < X_b && X_b < 1000); assert(0 < Y_b && Y_b < 1000); auto func = [&](long double y){ long double ret = 0; ret += sqrt(X_a*X_a + (Y_a-y)*(Y_a-y)); ret += sqrt(X_b*X_b + (Y_b-y)*(Y_b-y)); return ret; }; long double lb = min(Y_a, Y_b); long double ub = max(Y_a, Y_b); while(ub-lb > 1e-9){ long double l = (2*lb + ub)/3.0; long double r = (lb + 2*ub)/3.0; if(func(l)>func(r)){ lb = l; }else{ ub = r; } } printf("%.12f\n", (double)lb); return 0; }