#include <bits/stdc++.h>
#pragma warning(disable : 4786)
#pragma warning(disable : 4996)
using namespace std;
double yy1, y2, yw, xb, yb, r;
int f(double xw) {
  double ym = yb;
  double xm = 2 * xw - xb;
  double xc = xw;
  double yc = yw - r;
  double dy = yc - ym, dx = xc - xm;
  double yy = yw - r - (dy / dx * xc);
  if (yy >= y2 - r) return -1;
  double area = xc * ym + xm * y2 + 0 * yc - yc * xm - ym * 0 - y2 * xc;
  double d = sqrt(((ym - yc) * (ym - yc)) + ((xc - xm) * (xc - xm)));
  double h = area / d;
  h = fabs(h);
  if (h <= r) return -1;
  if (yy > yy1 + r) return 0;
  return 1;
}
int main() {
  while (scanf("%lf%lf%lf%lf%lf%lf", &yy1, &y2, &yw, &xb, &yb, &r) != EOF) {
    double lo = 0, hi = xb;
    int done = 0;
    for (int i = 0; i < 100; i++) {
      double mid = (lo + hi) / 2.;
      int resp = f(mid);
      if (resp == -1)
        lo = mid;
      else if (resp == 1)
        hi = mid;
      else {
        done = 1;
        printf("%.10lf\n", mid);
        break;
      }
    }
    if (!done) printf("-1\n");
  }
  return 0;
}
