#include <bits/stdc++.h>
const double eps = 1e-8;
const int N = 111111;
const int mod = 1000000;
const double pi = acos(-1.0);
const long long INF = 0x7f7f7f7f;
const double inf = 1e50;
template <class T>
inline T minx(T a, T b) {
  return (a == -1 || b < a) ? b : a;
}
template <class T>
inline T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <class T>
inline T lcm(T a, T b) {
  return a * (b / gcd(a, b));
}
template <class T>
inline T getbit(T n) {
  return n ? (1 + getbit(n & (n - 1))) : 0;
}
template <class T>
inline T lowbit(T n) {
  return n & (-n);
}
using namespace std;
double Y1, Y2, Yw, Xb, Xw, r, Yb;
double cal(double y) {
  double t1, t2;
  t1 = Yw - y;
  t2 = Yw - Yb;
  return t1 * Xb / (t1 + t2);
}
int main() {
  scanf("%lf%lf%lf%lf%lf%lf", &Y1, &Y2, &Yw, &Xb, &Yb, &r);
  Yw -= r;
  double t = cal(Y1 + r);
  double s = (Xb - t) / (Yw - Yb);
  double sinA = s / sqrt(s * s + 1);
  double d = (Y2 - Y1 - r) * sinA;
  if (d <= r) {
    puts("-1");
  } else {
    printf("%.10f\n", t);
  }
  return 0;
}
