#include <bits/stdc++.h>
using namespace std;
int main() {
  int y1, y2, yw, xb, yb, r;
  cin >> y1 >> y2 >> yw >> xb >> yb >> r;
  if (xb == r) {
    cout << "-1\n";
    return 0;
  }
  yw -= r;
  y2 = yw + (yw - y2);
  y1 = yw + (yw - y1);
  long double ang10 = atan2(y2 - yb, xb);
  long double dst1 = sqrt(1LL * (y2 - yb) * (y2 - yb) + 1LL * xb * xb);
  long double ang11 = asin(r / dst1);
  long double ang20 = atan2(y1 - yb, xb);
  long double dst2 = sqrt(1LL * (y1 - yb) * (y1 - yb) + 1LL * xb * xb);
  long double ang21 = asin(r / dst2);
  long double angf = ang10 + ang11 + 1e-8;
  long double y3 = yb + xb * tan(angf);
  if (y3 > y1 - r - 1e-8) {
    cout << "-1\n";
    return 0;
  }
  cout << fixed << setprecision(12) << xb - (yw - yb) / tan(angf) << "\n";
  return 0;
}
