#include <bits/stdc++.h>
const char* INPUTFILE = NULL;
const char* OUTPUTFILE = NULL;
const char* ERROR_LOG__FILE = NULL;
const FILE* INPUT = (INPUTFILE ? freopen(INPUTFILE, "r", stdin) : stdin);
const FILE* OUTPUT = (OUTPUTFILE ? freopen(OUTPUTFILE, "w", stdout) : stdout);
const FILE* ERROR_LOG =
    (ERROR_LOG__FILE ? freopen(ERROR_LOG__FILE, "w", stderr) : stderr);
inline double TIME() {
  return (static_cast<double>(clock())) / (static_cast<double>(CLOCKS_PER_SEC));
}
using namespace std;
double x, y, x2, y2;
double Vmax, t;
double vx, vy, wx, wy;
double newX, newY;
inline void SolveOrDie() {
  cin >> x >> y >> x2 >> y2;
  cin >> Vmax >> t;
  cin >> vx >> vy;
  cin >> wx >> wy;
  double l = 0, r = 1e9, mid, newX, newY;
  for (int iter = 0; iter < 100; ++iter) {
    mid = (l + r) / 2.0;
    newX = x + (mid <= t ? mid : t) * vx + (mid <= t ? 0 : mid - t) * wx;
    newY = y + (mid <= t ? mid : t) * vy + (mid <= t ? 0 : mid - t) * wy;
    if ((x2 - newX) * (x2 - newX) + (y2 - newY) * (y2 - newY) <=
        Vmax * mid * Vmax * mid) {
      r = mid;
    } else {
      l = mid;
    }
  }
  printf("%.10f\n", r);
}
int main(const int argc, const char** argv) {
  assert(INPUT);
  try {
    SolveOrDie();
  } catch (const std ::exception& e) {
    cerr << e.what() << std ::endl;
    exit(-1);
  } catch (...) {
    cerr << "Exception\n";
    exit(-1);
  }
  return 0;
}
