#include //const static double de_PI = 3.14159265358979323846; //const static int de_MOD = 1000000007; //const static int de_MAX = 999999999; //const static int de_MIN = -999999999; inline std::complex Linear_Function(std::complex &A, std::complex &B) { std::complex result; result.real((B.imag() - A.imag()) / (B.real() - A.real())); result.imag(A.imag() - result.real()*A.real()); return(result); } int main(void) { //std::ifstream in("123.txt"); std::cin.rdbuf(in.rdbuf()); std::complex A, B, ans; double temp = 0; std::cin >> temp; A.real(temp); std::cin >> temp; A.imag(temp); std::cin >> temp; B.real(temp); std::cin >> temp; B.imag(temp); if (A.imag() == B.imag()) { std::cout << A.imag() << std::endl; return 0; } if (A.real() == B.real()) { std::cout << (A.imag()+B.imag()) / 2.0 << std::endl; return 0; } A.real(A.real()*-1); ans = Linear_Function(A, B); std::cout << std::fixed << std::setprecision(10) << ans.imag() << std::endl; }