#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
double pos(double a, double v0, double t) { return a * t * t / 2.0 + v0 * t; }
double pos_inv(double a, double v0, double pos) {
  return (-v0 + sqrt(v0 * v0 + 2.0 * a * pos)) / a;
}
double solve_no_speedsign(double a, double v_max, double v0, double len) {
  if (pos(a, v0, (v_max - v0) / a) > len - EPS) {
    return pos_inv(a, v0, len);
  }
  return (v_max - v0) / a + (len - pos(a, v0, (v_max - v0) / a)) / v_max;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.setf(ios::fixed);
  cout.precision(8);
  double a, v, l, d, w;
  cin >> a >> v >> l >> d >> w;
  if (w > v - EPS || pos(a, 0.0, w / a) > d - EPS) {
    cout << solve_no_speedsign(a, v, 0.0, l) << endl;
  } else {
    double arch_dist = d - pos(a, 0.0, w / a);
    double before_sign =
        w / a + 2.0 * solve_no_speedsign(a, v, w, arch_dist / 2.0);
    double after_sign = solve_no_speedsign(a, v, w, l - d);
    cout << before_sign + after_sign << endl;
  }
}
