#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5e5 + 100;
char str[MAXN];
const long double eps = 1e-12;
long double y_1, y_2, yw, xb, yb, r;
pair<long double, long double> ptarget, pstart;
long double f1(long double x) {
  long double tg = x / (yw - ptarget.second - r);
  return atan(tg);
}
long double f2(long double x) {
  long double tg = (pstart.first - x) / (yw - pstart.second - r);
  return atan(tg);
}
long double find(long double l, long double r) {
  while (l + eps < r) {
    long double m = (l + r) / 2;
    if (f1(m) + eps < f2(m))
      l = m;
    else
      r = m;
  }
  return l;
}
int main() {
  cin >> y_1 >> y_2 >> yw >> xb >> yb >> r;
  ptarget = make_pair(0, y_1 + r);
  pstart = make_pair(xb, yb);
  long double res_x = find(0 + eps, pstart.first - eps);
  long double delta = r / sin(f1(res_x));
  if (y_2 + eps < ptarget.second + delta)
    puts("-1");
  else {
    cout.setf(ios::fixed);
    cout << setprecision(15) << res_x;
  }
  return 0;
}
