#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
struct point {
  double x, y;
  point() {}
  point(const double &xx, const double &yy) { x = xx, y = yy; }
  void input() { cin >> x >> y; }
  double len() { return sqrt(x * x + y * y); }
} a, b, c, v1, v2;
double dot(const point &n1, const point &n2) {
  return n1.x * n2.x + n1.y * n2.y;
}
point operator-(const point &n1, const point &n2) {
  return point(n1.x - n2.x, n1.y - n2.y);
}
point operator+(const point &n1, const point &n2) {
  return point(n1.x + n2.x, n1.y + n2.y);
}
point operator*(const point &n1, const double &n2) {
  return point(n1.x * n2, n1.y * n2);
}
double vm, tim;
double solve(double b, double c) { return (-b + sqrt(b * b - 4 * c)) / 2; }
int main() {
  double co, v, l, r, m, dis;
  a.input(), b.input();
  cin >> vm >> tim;
  v1.input(), v2.input();
  if (a.x == b.x && a.y == b.y) {
    cout << 0;
    return 0;
  }
  co = dot(v1, b - a) / v1.len() / (b - a).len();
  v = solve(-2 * v1.len() * co, v1.len() * v1.len() - vm * vm);
  if ((b - a).len() / v < tim) {
    printf("%0.10lf", (b - a).len() / v);
    return 0;
  }
  c = a + v1 * tim;
  for (l = 0, r = 1e10; fabs(l - r) > eps;) {
    m = (l + r) / 2;
    dis = (b - v2 * m - c).len() - vm * tim;
    if (dis < 0 || dis / vm < m)
      r = m;
    else
      l = m;
  }
  printf("%0.10lf", m + tim);
  return 0;
}
