func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   inline T sqr(T x) {     return x * x;   }   const double EPS = 1e-10;   const int INF = 0x3fffffff;   const long long LINF = INF * 1ll * INF;   const double PI = acos(-1.0);   using namespace std;   int sign(double x) { return x > 0 ? 1 : -1; }   int main(void) {     int x1, y1, x2, y2;     scanf( %d %d %d %d , &x1, &y1, &x2, &y2);     int vmax, t;     scanf( %d %d , &vmax, &t);     double low = 0, high = t;     double windX, windY;     scanf( %lf %lf , &windX, &windY);     double newX, newY;     scanf( %lf %lf , &newX, &newY);     bool find = false;     while (low + EPS <= high) {       double mid = (low + high) / 2.0;       double deltaX = x2 - x1;       double deltaY = y2 - y1;       double vx = deltaX / mid - windX;       if (abs(vx) - abs(vmax) > 0) {         low = mid;         continue;       }       double vy = sqrt(vmax * vmax - vx * vx) + windY;       double mx = vy * mid;       vy = -sqrt(vmax * vmax - vx * vx) + windY;       double mi = vy * mid;       if (mx < mi) swap(mx, mi);       if (mi - EPS <= deltaY && deltaY <= mx + EPS) {         high = mid;         find = true;       } else         low = mid;     }     if (!find) {       low = t, high = 1e9;       while (low + EPS <= high) {         double mid = (low + high) / 2.0;         double deltaX = x2 - x1;         double deltaY = y2 - y1;         double vx = deltaX - t * windX - newX * (mid - t);         vx /= mid;         if (abs(vx) - abs(vmax) > 0) {           low = mid;           continue;         }         double vy = sqrt(vmax * vmax - vx * vx);         double mx = vy * mid + t * windY + (mid - t) * newY;         vy = -sqrt(vmax * vmax - vx * vx);         double mi = vy * mid + t * windY + (mid - t) * newY;         if (mx < mi) swap(mx, mi);         if (mi - EPS <= deltaY && deltaY <= mx + EPS) {           high = mid;         } else           low = mid;       }     }     printf( %.10lf n , low);     return 0;   }   