#include <bits/stdc++.h>
using namespace std;
double l(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double min_d(double x1, double y1, double x2, double y2, double x3, double y3) {
  double mn = 999999999;
  double lx = x2, ly = y2;
  double rx = x3, ry = y3;
  while (true) {
    double mx = (lx + rx) / 2.0;
    double my = (ly + ry) / 2.0;
    double new_l = l(x1, y1, mx, my);
    if (fabs(mn - new_l) < 0.000001)
      break;
    else {
      mn = new_l;
      if (l(x1, y1, (lx + mx) / 2.0, (ly + my) / 2.0) >
          l(x1, y1, (rx + mx) / 2.0, (ry + my) / 2)) {
        lx = mx;
        ly = my;
      } else {
        rx = mx;
        ry = my;
      }
    }
  }
  return mn;
}
int main() {
  double y1, y2, yw, xb, yb, r;
  cin >> y1 >> y2 >> yw >> xb >> yb >> r;
  yw -= r;
  y1 += r;
  y2 -= r;
  if (y2 < y1) {
    cout << -1 << endl;
    return 0;
  }
  double ansx = (xb * (yw - y1)) / (2 * yw - y1 - yb);
  y2 += r;
  double l = min_d(0, y2, 0, y1, ansx, yw);
  if (l < r) {
    cout << -1 << endl;
  } else
    printf("%.10lf\n", ansx);
  return 0;
}
