#include <bits/stdc++.h>   using namespace std;   template <class T>   bool chmax(T &a, const T &b) {     if (a < b) {       a = b;       return 1;     }     return 0;   }   template <class T>   bool chmin(T &a, const T &b) {     if (a > b) {       a = b;       return 1;     }     return 0;   }   template <class T>   ostream &operator<<(ostream &os, const vector<T> &t) {     os <<  [ ;     for (__typeof((t).begin()) it = (t).begin(); it != (t).end(); it++) {       if (it != t.begin()) os <<  , ;       os << *it;     }     os <<  ] ;     return os;   }   template <class T>   ostream &operator<<(ostream &os, const set<T> &t) {     os <<  { ;     for (__typeof((t).begin()) it = (t).begin(); it != (t).end(); it++) {       if (it != t.begin()) os <<  , ;       os << *it;     }     os <<  } ;     return os;   }   template <class S, class T>   ostream &operator<<(ostream &os, const pair<S, T> &t) {     return os <<  (  << t.first <<  ,  << t.second <<  ) ;   }   template <class S, class T>   pair<S, T> operator+(const pair<S, T> &s, const pair<S, T> &t) {     return pair<S, T>(s.first + t.first, s.second + t.second);   }   template <class S, class T>   pair<S, T> operator-(const pair<S, T> &s, const pair<S, T> &t) {     return pair<S, T>(s.first - t.first, s.second - t.second);   }   namespace geom {   enum { TRUE = 1, FALSE = 0, BORDER = -1 };   const long double INF = 1e8;   long double EPS = 1e-6;   const long double PI = 3.1415926535897932384626;   inline int sig(const long double &x) {     return (abs(x) < EPS ? 0 : x > 0 ? 1 : -1);   }   inline int less(const long double &x, const long double &y) {     return sig(x - y) ? x < y : BORDER;   }   inline long double norm(const complex<long double> &p) {     return p.real() * p.real() + p.imag() * p.imag();   }   inline long double inp(const complex<long double> &a,                          const complex<long double> &b) {     return (conj(a) * b).real();   }   inline long double outp(const complex<long double> &a,                           const complex<long double> &b) {     return (conj(a) * b).imag();   }   inline complex<long double> unit(const complex<long double> &p) {     return p / abs(p);   }   inline complex<long double> proj(const complex<long double> &s,                                    const complex<long double> &t) {     return t * inp(s, t) / norm(t);   }   inline int ccw(const complex<long double> &s, const complex<long double> &t,                  const complex<long double> &p, int adv = 0) {     int res = sig(outp(t - s, p - s));     if (res || !adv) return res;     if (sig(inp(t - s, p - s)) < 0) return -2;     if (sig(inp(s - t, p - t)) < 0) return 2;     return 0;   }   }  // namespace geom   using namespace geom;   int f = 0;   namespace std {   bool operator<(const complex<long double> &a, const complex<long double> &b) {     return sig(a.real() - b.real()) ? a.real() < b.real()                                     : a.imag() + EPS < b.imag();   }   bool operator==(const complex<long double> &a, const complex<long double> &b) {     return abs(a - b) < EPS;   }   istream &operator>>(istream &is, complex<long double> &p) {     long double x, y;     is >> x >> y;     p = complex<long double>(x, y);     return is;   }   }  // namespace std   int n, m;   complex<long double> p, q, v, w;   long double vmax, ct;   long double dist(complex<long double> v, complex<long double> wind,                    long double t) {     if (abs(v) > EPS) v = unit(v);     long double l = 0, r = 1e10;     for (int _ = 0; _ < (int)(100); _++) {       long double mid = (l + r) / 2;       long double vx = v.real() * mid;       long double vy = v.imag() * mid;       if ((vx * vx + vy * vy) <= vmax * vmax)         l = mid;       else         r = mid;     }     return abs(v * l) * t;   }   int check(long double t) {     complex<long double> s =         q + v * min<long double>(t, ct) + w * max<long double>(t - ct, 0);     complex<long double> vec = p - s;     return dist(vec, v, min<long double>(t, ct)) +                dist(vec, w, max<long double>(t - ct, 0)) >=            abs(vec);   }   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cin >> q >> p;     cin >> vmax >> ct;     cin >> v >> w;     long double l = 0, r = 1e10;     for (int _ = 0; _ < (int)(100); _++) {       long double mid = (l + r) / 2;       if (check(mid))         r = mid;       else         l = mid;     }     printf( %.20f n , (double)l);     return 0;   }