#include <bits/stdc++.h>
const double eps = 1e-6;
struct Vector {
  double x, y;
  Vector() {}
  Vector(double x, double y) : x(x), y(y) {}
  inline void read() { scanf("%lf%lf", &x, &y); }
  inline double length() { return sqrt(x * x + y * y); }
  inline Vector operator+(const Vector& o) { return Vector(x + o.x, y + o.y); }
  inline Vector operator-(const Vector& o) { return Vector(x - o.x, y - o.y); }
  inline Vector operator*(double k) { return Vector(x * k, y * k); }
} ori, des, v1, v2;
int main() {
  double v, t, l = 0, time, r = 1e8;
  ori.read(), des.read();
  scanf("%lf%lf", &v, &t);
  v1.read(), v2.read();
  while (r - l > eps) {
    time = (l + r) / 2;
    if (time <= t)
      ((des - ori - v1 * time).length() / v > time ? l : r) = time;
    else
      ((des - ori - v1 * t - v2 * (time - t)).length() / v > time ? l : r) =
          time;
  }
  printf("%lf", time);
  return 0;
}
