#include <bits/stdc++.h>
using namespace std;
const double kEps = 1e-8;
double iy1, iy2, iyw, ixb, iyb, ir;
double dy1, dy2, cndx;
inline bool fle(double a, double b) { return a < b + kEps; }
inline double cross(complex<double> u, complex<double> v) {
  return imag(conj(u) * v);
}
inline double dist(complex<double> p, complex<double> a, complex<double> b) {
  return abs(cross(p - a, b - a)) / abs(b - a);
}
int main() {
  cout.setf(ios::fixed), cout.precision(10);
  cin >> iy1 >> iy2 >> iyw >> ixb >> iyb >> ir;
  dy1 = iyw - ir - (iy1 + ir);
  dy2 = iyw - ir - iyb;
  cndx = dy1 / (dy1 + dy2) * ixb;
  if (fle(dist(complex<double>(0, iy2), complex<double>(0, iy1 + ir),
               complex<double>(cndx, iyw - ir)),
          ir))
    cout << "-1\n";
  else
    cout << cndx << "\n";
  return 0;
}
