#include <bits/stdc++.h>
using namespace std;
double y111, y222, yw, xb, yb, r;
double ASIN(double w) {
  if (w < -1.0) w = -1.0;
  if (w > 1.0) w = 1.0;
  return asin(w);
}
int main() {
  cin >> y111 >> y222 >> yw >> xb >> yb >> r;
  y111 += 1E-9;
  y222 -= 1E-9;
  double st = yw - r;
  double plo = 2 * st - y111, phi = 2 * st - y222;
  if (plo > phi) swap(plo, phi);
  double D = sqrt(((xb) * (xb)) + ((plo - yb) * (plo - yb)));
  double ang = ASIN(r / D);
  complex<double> dir = complex<double>(0, plo) - complex<double>(xb, yb);
  dir *= polar(1.0, -ang);
  double ty = yb + (fabs(xb / dir.real())) * dir.imag();
  if (ty < phi - r + 1E-9) {
    double X = xb + ((st - yb) / dir.imag()) * dir.real();
    printf("%.18lf\n", X);
  } else
    puts("-1");
  return 0;
}
