#include <bits/stdc++.h>
using namespace std;
int check(double x, int y1, int y2, int yw, int xb, int yb, int r) {
  double dist =
      abs(x * (2 * yw - y2 - yb) + (double)xb * (y2 - yw)) /
      sqrt((double)(xb - x) * (xb - x) + (double)(yw - yb) * (yw - yb));
  if (dist > (r + 1e-8)) return 1;
  return -1;
}
int main() {
  int y1, y2, yw, xb, yb, r;
  cin >> y1 >> y2 >> yw >> xb >> yb >> r;
  yw -= r;
  double hg = (double)xb * (yw - y1 - r) / (double)(2 * yw - y1 - yb - r);
  double lw = (double)xb * (yw - y2 + r) / (double)(2 * yw - yb - y2 + r);
  while (lw < (hg - 1e-8)) {
    double m = (lw + hg) / 2.0;
    int t = check(m, y1, y2, yw, xb, yb, r);
    if (t >= 0) {
      printf("%0.9lf\n", m);
      return 0;
    }
    lw = m + 1e-8;
  }
  if (lw >= (hg - 1e-8) && lw <= (hg + 1e-8)) {
    int t = check(lw, y1, y2, yw, xb, yb, r);
    if (t >= 0) {
      printf("%0.9lf\n", lw);
      return 0;
    }
  }
  printf("-1\n");
  return 0;
}
