#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const long double EPS = 1e-9;
const long double PI = acos(-1.0);
const int MAXN = 1e5;
struct point {
  long double x, y;
  point() : x(), y(){};
  point(long double _x, long double _y) : x(_x), y(_y) {}
  point operator+(const point& o) const { return point(x + o.x, y + o.y); }
  point operator-(const point& o) const { return point(x - o.x, y - o.y); }
  long double len2() { return x * x + y * y; }
  long double len() { return sqrt(x * x + y * y); }
  point operator*(long double d) const { return point(x * d, y * d); }
  void read() { cin >> x >> y; }
  void print() { cerr << x << ' ' << y << '\n'; }
};
int main() {
  point st, en;
  st.read();
  en.read();
  long long vm, t;
  cin >> vm >> t;
  point v, w;
  v.read();
  w.read();
  point ns = st + v * t;
  long double l, r;
  if ((en - ns).len() / vm > t) {
    st = ns;
    l = t, r = 1e18;
    v = w;
  } else {
    l = 0, r = t;
    t = 0;
  }
  for (int _ = 0; _ < (150); ++_) {
    long double m = (l + r) / 2;
    if ((st + v * (m - t) - en).len() / vm > m)
      l = m;
    else
      r = m;
  }
  cout << fixed << setprecision(15) << double(r) << '\n';
  return 0;
}
