#include <bits/stdc++.h>
using namespace std;
inline double get_y(double xx, double yy, double mi) {
  return yy - xx / tan(mi);
}
int main() {
  double y1, y2, yw, xb, yb, r;
  cin >> y1 >> y2 >> yw >> xb >> yb >> r;
  double lo = 0, hi = atan2(xb, yw - r - yb), mi;
  for (int it = 0; it < 10000; it++) {
    mi = (lo + hi) / 2.;
    double d = (yw - r - yb) * tan(mi);
    double xx = xb - d, yy = yw - r;
    double xd = xx + r * cos(mi), yd = yy - r * sin(mi);
    if (get_y(xx, yy, mi) < y1 + r)
      lo = mi;
    else
      hi = mi;
  }
  double v1 = lo;
  lo = 0, hi = atan2(xb, yw - r - yb);
  for (int it = 0; it < 10000; it++) {
    mi = (lo + hi) / 2.;
    double d = (yw - r - yb) * tan(mi);
    double xx = xb - d, yy = yw - r;
    double xd = xx - r * cos(mi), yd = yy + r * sin(mi);
    if (get_y(xx, yy, mi) > y2 - r || get_y(xd, yd, mi) > y2 || xd < 0)
      hi = mi;
    else
      lo = mi;
  }
  mi = (lo + v1) / 2;
  double d = (yw - r - yb) * tan(mi);
  double xx = xb - d, yy = yw - r;
  double xu = xx - r * cos(mi), yu = yy + r * sin(mi);
  double xd = xx + r * cos(mi), yd = yy - r * sin(mi);
  yy = get_y(xx, yy, mi);
  if (yy < y1 + r + 1e-8 || yy > y2 - r - 1e-8 || get_y(xu, yu, mi) > y2)
    puts("-1");
  else
    printf("%.12lf\n", xx);
  return 0;
}
