#include <bits/stdc++.h>
using namespace std;
double a, w, v, l, d;
int main() {
  cout.setf(ios::fixed);
  cout.precision(6);
  cin >> a >> v >> l >> d >> w;
  double t, t1, t2, t3, T1, T2;
  double v1, v2, x1, x2;
  if (v <= w) {
    t1 = v / a;
    x1 = (a / 2) * (t1) * (t1);
    if (x1 > l) {
      t = sqrt(2 * l / a);
    } else {
      t2 = (l - (a * (t1) * (t1) / 2)) / v;
      t = t1 + t2;
    }
    cout << t;
    return 0;
  }
  t1 = sqrt((2 * a * d + (w) * (w)) / (2 * (a) * (a)));
  v1 = a * t1;
  if (v1 <= w) {
    T1 = (sqrt(2 * a * (d))) / a;
    w = a * T1;
  } else if (v1 <= v) {
    t2 = (v1 - w) / a;
    T1 = t1 + t2;
  } else {
    t1 = v / a;
    t2 = (v - w) / a;
    t3 = (d - (((a * (t1) * (t1)) / 2) + (v * t2) - ((a * (t2) * (t2)) / 2))) /
         v;
    T1 = t1 + t2 + t3;
  }
  t1 = (v - w) / a;
  x1 = w * t1 + (a / 2) * (t1) * (t1);
  if (x1 == (l - d))
    T2 = t1;
  else if (x1 > l - d) {
    T2 = (sqrt((w) * (w) + 2 * a * (l - d)) - w) / a;
  } else {
    T2 = t1 + (l - d - x1) / v;
  }
  t = T1 + T2;
  cout << t;
  return 0;
}
