#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
const double eps = 1e-8;
const int nm = 300005;
long long res;
int a[nm];
char s[nm];
bool check[nm];
long long Pow(int x, int mu) {
  if (mu == 0) return 1ll;
  long long res = Pow(x, mu >> 1);
  res = res * res % MOD;
  if (mu & 1) res = res * x % MOD;
  return res;
}
int main() {
  double i, j, k, z, w;
  double y1, y2, yw, xw, yb, xb, r;
  cin >> y1 >> y2 >> yw >> xb >> yb >> r;
  double l = eps, ri = xb - eps, ang;
  l = eps, ri = xb - eps;
  while (ri - l > eps) {
    if ((xb - ((l + ri) / 2)) / (yw - yb - r) * (yw - r * 2 - y1) <
        ((l + ri) / 2))
      ri = ((l + ri) / 2);
    else
      l = ((l + ri) / 2);
  }
  xw = ((l + ri) / 2);
  j = 0;
  i = xw / 2500000;
  while (j < xw) {
    k = j * (yw - y1 - r * 2) / xw + y1 + r;
    if (hypot(j, k - y2) + eps < r) {
      cout << "-1";
      return 0;
    }
    j += i;
  }
  j = xw;
  i = (xb - xw) / 2500000;
  while (j < xb) {
    k = (j - xb) * (yw - r - yb) / (xw - xb) + yb;
    if (hypot(j, k - y1) + eps < r) {
      cout << "-1";
      return 0;
    }
    j += i;
  }
  printf("%.12lf ", xw);
  ;
  return 0;
}
