#include <bits/stdc++.h>
using namespace std;
double dot(complex<double> a, complex<double> b) { return real(conj(a) * b); }
double calcspeed(complex<double> p1, complex<double> p2, complex<double> w,
                 double vmax) {
  complex<double> r = p2 - p1;
  double k =
      dot(r, w) + sqrt(pow(dot(r, w), 2) - norm(r) * (norm(w) - vmax * vmax));
  k /= abs(r);
  return k;
}
double calc(complex<double> p1, complex<double> p2, complex<double> w,
            double vmax) {
  double speed = calcspeed(p1, p2, w, vmax);
  return abs(p2 - p1) / speed;
}
int main() {
  int x1, y1, x2, y2;
  cin >> x1 >> y1 >> x2 >> y2;
  double vmax, t;
  cin >> vmax >> t;
  int vx, vy, wx, wy;
  cin >> vx >> vy >> wx >> wy;
  if (x1 == x2 && y1 == y2) {
    cout << 0 << endl;
    return 0;
  }
  complex<double> r(x2, y2), v(vx, vy), w(wx, wy);
  double ret = calc(complex<double>(x1, y1), complex<double>(x2, y2), v, vmax);
  if (ret < t) {
    printf("%.20f\n", ret);
    return 0;
  }
  r -= complex<double>(x1, y1);
  v /= r;
  w /= r;
  vmax /= abs(r);
  r /= r;
  const double pi = acos(-1);
  double low = -pi + 1e-6;
  double high = pi - 1e-6;
  double f = 0;
  for (int i = (0); i < (200); i++) {
    double mid1 = (low * 2 + high) / 3;
    double mid2 = (low + high * 2) / 3;
    complex<double> target1 = polar(200.0, mid1);
    complex<double> target2 = polar(200.0, mid2);
    complex<double> speed1 = calcspeed(complex<double>(0, 0), target1, v, vmax);
    complex<double> speed2 = calcspeed(complex<double>(0, 0), target2, v, vmax);
    complex<double> point1 = speed1 * target1 / abs(target1) * t;
    complex<double> point2 = speed2 * target2 / abs(target2) * t;
    double f1 = calc(point1, r, w, vmax);
    double f2 = calc(point2, r, w, vmax);
    if (f1 > f2) {
      low = mid1;
      f = f1;
    } else {
      high = mid2;
      f = f2;
    }
  }
  printf("%.20f\n", f + t);
  return 0;
}
