#include #include #include using namespace std; double min(double a, double b) { if (a > b) return b; else return a; } double max(double a, double b) { if (a < b) return b; else return a; } int main() { double ax, ay, bx, by; cin >> ax >> ay; cin >> bx >> by; if (ay == by) { cout << ay << endl; return 0; } else if (ax == bx) { cout << (ay + by) / 2 << endl; return 0; } else { double tmp = 1000000.0; double p = min(ay, by); for (double d = min(ay,by); d <= max(ay,by); d = d + 0.00001) { double dis = sqrt(ax*ax + (ay - d)*(ay - d)) + sqrt(bx*bx + (by - d)*(by - d)); if (dis < tmp) { p = d; tmp = dis; } } tmp = 1000000.0; for (double d = p - 0.00005; d <= p + 0.00005; d = d + 0.000001) { double dis = sqrt(ax*ax + (ay - d)*(ay - d)) + sqrt(bx*bx + (by - d)*(by - d)); if (dis < tmp) { p = d; tmp = dis; } } cout << p << endl; } return 0; }