func_code_string: #include <bits/stdc++.h>   const double pi = acos(-1);   const int MOD = 1e9 + 7;   const int INF = 1e9 + 7;   const int MAXN = 1e6 + 5;   const double eps = 1e-9;   using namespace std;   double xp, yp, vp, x, y, v, r, R;   double P, len, L;   pair<double, double> pos[2];   double f(double dphi) {     if (dphi > pi) dphi = 2 * pi - dphi;     if (dphi > P) return ((dphi - P) * r + L) / v;     return sqrt(len * len + R * R - 2 * len * R * cos(dphi)) / v;   }   int main() {     scanf( %lf %lf %lf %lf %lf %lf %lf , &xp, &yp, &vp, &x, &y, &v, &r);     double lo = 0, hi = 1e18;     R = hypot(xp, yp);     double omega = vp / R;     double phi0 = 0;     if (x * yp == xp * y) {       if (x * xp < 0 || y * yp < 0) phi0 = pi;     } else {       phi0 = acos((x * xp + y * yp) / (hypot(xp, yp) * hypot(x, y)));       if (x * yp < xp * y) phi0 = 2 * pi - phi0;     }     len = hypot(x, y);     L = sqrt(len * len - r * r) + sqrt(R * R - r * r);     P = acos(r / len) + acos(r / R);     hi = fabs(R - len) / v + 2 * pi * R / vp;     while (abs(hi - lo) > eps) {       double T = (lo + hi) / 2.;       double dphi = fmod(omega * T + phi0, 2 * pi);       if (dphi < 0) dphi += 2 * pi;       if (f(dphi) < T)         hi = T;       else         lo = T;     }     printf( %.20f n , lo);     return 0;   }   