#include <bits/stdc++.h>
using namespace std;
long double sqr(long double x) { return x * x; }
long double a, v;
long double l, d, w;
long double eps = 1e-5;
int main() {
  cin >> a >> v >> l >> d >> w;
  long double t = 0;
  long double vd = sqrt(2 * d * a);
  if (vd <= w + eps && vd <= v + eps)
    t = sqrt(2 * d / a);
  else if (vd > v + eps && v <= w + eps) {
    t = v / a + (d - sqr(v) / 2 / a) / v;
    vd = v;
  } else {
    long double t2 = sqrt(d / a + sqr(w / a) / 2);
    long double v2 = a * t2;
    if (v2 <= v + eps)
      t = 2 * t2 - w / a;
    else {
      t2 = v / a;
      long double x1 = a * sqr(t2) / 2;
      long double t3 = (v - w) / a;
      long double x2 = v * t3 - a * sqr(t3) / 2;
      t = t2 + t3 + (d - x1 - x2) / v;
    }
    vd = w;
  }
  {
    l -= d;
    long double t2 = (-vd / a) + sqrt(sqr(vd / a) + 2 * l / a);
    long double u = vd + a * t2;
    if (u <= v + eps)
      t += t2;
    else {
      t2 = (v - vd) / a;
      t += t2;
      l -= vd * t2 + a * sqr(t2) / 2;
      t += l / v;
    }
  }
  cout << setprecision(12) << fixed << t << endl;
  return 0;
}
