#include <bits/stdc++.h>
using namespace std;
struct Point {
  double x, y;
};
Point hq, dc, v, w;
double vm, t;
double Dist(Point a, Point b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
bool canR(double ti) {
  double t1 = min(ti, t);
  double t2 = max(0., ti - t);
  Point np;
  np.x = hq.x + t1 * v.x + t2 * w.x;
  np.y = hq.y + t1 * v.y + t2 * w.y;
  return ti * vm >= Dist(np, dc);
}
int main() {
  cout << fixed << setprecision(18);
  while (cin >> hq.x >> hq.y >> dc.x >> dc.y) {
    cin >> vm >> t;
    cin >> v.x >> v.y >> w.x >> w.y;
    double lo = 0.0, hi = 10e10;
    while (hi - lo > 10e-9) {
      double mid = (lo + hi) / 2.;
      if (canR(mid))
        hi = mid;
      else
        lo = mid;
    }
    cout << hi << endl;
  }
  return 0;
}
