#include <bits/stdc++.h>
using namespace std;
struct vt {
  double x, y;
  vt(double X, double Y) : x(X), y(Y) {}
  vt() : x(0), y(0) {}
  double length() { return sqrt(x * x + y * y); }
};
double INF = .0000001;
vt operator-(vt a, vt b) { return vt(a.x - b.x, a.y - b.y); }
vt operator+(vt a, vt b) { return vt(a.x + b.x, a.y + b.y); }
vt operator*(vt b, double a) { return vt(a * b.x, a * b.y); }
vt operator*(double a, vt b) { return vt(a * b.x, a * b.y); }
vt operator/(vt a, double b) { return vt(a.x / b, a.y / b); }
bool operator!=(vt a, vt b) { return ((a.x != b.x) || (a.y != b.y)); }
vt operator-(vt a) { return vt(-a.x, -a.y); }
double bin(vt l, vt r, double V1, double V2, vt c, double T) {
  vt L = l, R = r;
  for (int i = 0; i < 100; i++) {
    vt m = (l + r) / 2;
    vt q = (m - c);
    vt w = (m - L);
    if (q.length() / V1 < w.length() / V2 + T)
      r = m;
    else
      l = m;
  }
  return (l - c).length() / V1;
}
int main() {
  vt a1, a2;
  int V, t;
  cin >> a1.x >> a1.y >> a2.x >> a2.y;
  cin >> V >> t;
  vt v, w;
  cin >> v.x >> v.y >> w.x >> w.y;
  v = -v;
  w = -w;
  vt after = a2 + t * v;
  if ((after - a1).length() / V < t) {
    cout << setprecision(11) << bin(a2, after, V, v.length(), a1, 0);
  } else {
    double t1 = (after - a1).length() / V;
    vt y = t1 * w;
    double T = t1 + y.length() / (V - w.length());
    vt last = after + w * T;
    cout << setprecision(11) << bin(after, last, V, w.length(), a1, t);
  }
  return 0;
}
