#include <bits/stdc++.h>
class Line {
 public:
  long double A, B, C;
  Line() { A = B = C = 0.0l; }
  Line(const Line& l) {
    A = l.A;
    B = l.B;
    C = l.C;
  }
  Line(std::complex<long double> p1, std::complex<long double> p2) {
    long double x1 = p1.real(), x2 = p2.real(), y1 = p1.imag(), y2 = p2.imag();
    A = y2 - y1;
    B = x1 - x2;
    C = y1 * (x2 - x1) - x1 * (y2 - y1);
  }
  long double Dist(std::complex<long double> p) {
    long double l = sqrtl(A * A + B * B);
    return std::abs(A * p.real() + B * p.imag() + C) / l;
  }
};
int main() {
  std::ios_base::sync_with_stdio(0);
  long double y1, y2, yw, xb, yb, r;
  std::cin >> y1 >> y2 >> yw >> xb >> yb >> r;
  long double h = std::abs((yw - r) - yb);
  std::complex<long double> p1 = std::complex<long double>(0.0l, y1 + r),
                            p2 = std::complex<long double>(xb, yw - r + h);
  Line l = Line(p1, p2);
  long double d = l.Dist(std::complex<long double>(0.0l, y2));
  if (!(d > r)) {
    std::cout << -1 << std::endl;
  } else {
    long double xw = (l.B * (yw - r) + l.C) / (-l.A);
    std::cout << std::fixed << std::setprecision(15) << xw << std::endl;
  }
  return 0;
}
