#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
struct point {
  double x, y;
  point(double x = 0, double y = 0) : x(x), y(y) {}
};
double disn(point a, point b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
int dcmp(double x) {
  if (fabs(x) <= eps) return 0;
  return x < 0 ? -1 : 1;
}
point S, T;
int main() {
  double v, t, vx, vy, wx, wy;
  scanf("%lf%lf%lf%lf", &S.x, &S.y, &T.x, &T.y);
  scanf("%lf%lf", &v, &t);
  scanf("%lf%lf%lf%lf", &vx, &vy, &wx, &wy);
  point T1;
  T1.x = T.x - (vx * t);
  T1.y = T.y - (vy * t);
  if (dcmp(v * t - disn(S, T1)) >= 0) {
    double tx = T.x - S.x;
    double ty = T.y - S.y;
    double a = vx * vx + vy * vy - v * v;
    double b = -2 * (tx * vx + ty * vy);
    double c = tx * tx + ty * ty;
    double deta = b * b - 4 * a * c;
    double x1 = (-b + sqrt(deta)) / (2 * a);
    double x2 = (-b - sqrt(deta)) / (2 * a);
    if (dcmp(x1) > 0)
      printf("%.18f\n", x1);
    else
      printf("%.18f\n", x2);
  } else {
    double tx = T.x - vx * t - S.x;
    double ty = T.y - vy * t - S.y;
    double a = wx * wx + wy * wy - v * v;
    double b = -2 * (tx * wx + ty * wy + t * v * v);
    double c = tx * tx + ty * ty - v * v * t * t;
    double deta = b * b - 4 * a * c;
    double x1 = (-b + sqrt(deta)) / (2 * a);
    double x2 = (-b - sqrt(deta)) / (2 * a);
    if (dcmp(x1) > 0)
      printf("%.18f\n", x1 + t);
    else
      printf("%.18f\n", x2 + t);
  }
  return 0;
}
