#include <bits/stdc++.h>
using namespace std;
double yy1, y2, yw, xb, yb, r;
double solve(double y) {
  if (y <= yb) {
    double ys = yw - yb;
    double yj = yb - y;
    double x = xb / (2.0 + yj / ys);
    x = x * yj / ys + x;
    return x;
  } else {
    double ys = yw - y;
    double yj = y - yb;
    double x = xb / (2.0 + yj / ys);
    return x;
  }
}
double diss(double x1, double y1, double x2, double y2) {
  return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
int main() {
  scanf("%lf%lf%lf%lf%lf%lf", &yy1, &y2, &yw, &xb, &yb, &r);
  yw -= r;
  if (yw - max(yb, yy1 + r) <= 0) {
    puts("-1");
    return 0;
  }
  double y = yy1 + r;
  double x = solve(y);
  double ys = yw - y;
  double yss = y2 - y;
  if ((y2 - y) * x / diss(0, y, x, yw) < r)
    puts("-1");
  else
    printf("%.10lf\n", x);
}
