func_code_string: #include <bits/stdc++.h>   using namespace std;   double cp(const complex<double> &a, const complex<double> &b) {     return a.real() * b.imag() - b.real() * a.imag();   }   inline complex<double> line_inter(const complex<double> &a,                                     const complex<double> &b,                                     const complex<double> &c,                                     const complex<double> &d) {     return a + cp(c - a, d - c) / cp(b - a, d - c) * (b - a);   }   inline double lp_dist(const complex<double> &a, const complex<double> &b,                         const complex<double> &p) {     return cp(b - a, p - a) / abs(b - a);   }   int main() {     int y1, y2, yw, xb, yb, r;     cin >> y1 >> y2 >> yw >> xb >> yb >> r;     yw -= r;     y1 += r;     y2 -= r;     if (y1 == y2)       cout << -1 << endl;     else {       double cc = yw + (yw - (y1 + 0.00001));       complex<double> a(0, cc), b(xb, yb), c(0, yw), d(xb, yw);       complex<double> e(0, yw + yw - (y2 + r));       if (lp_dist(b, a, e) <= r)         cout << -1 << endl;       else {         complex<double> s = line_inter(a, b, c, d);         cout << fixed << setprecision(12) << s.real() << endl;       }     }     return 0;   }   