#include <bits/stdc++.h>
double low, high, w, x, y, r;
inline double dist(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
int main() {
  scanf("%lf%lf%lf%lf%lf%lf", &high, &low, &w, &x, &y, &r);
  w -= r;
  high = 2 * w - high;
  low = 2 * w - low;
  double k = tan(atan2(low - y, -x) - asin(r / dist(x, y, 0, low))) - 1e-8;
  if (x == r || high - (y - x * k) < r) return puts("-1"), 0;
  printf("%.10lf\n", (w - y) / k + x);
}
