#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
double a, v, l, d, w, t1, t2, vd, vt, r;
int fcmp(double x) {
  if (fabs(x) < eps)
    return 0;
  else
    return x < 0 ? -1 : 1;
}
int main() {
  scanf("%lf %lf %lf %lf %lf", &a, &v, &l, &d, &w);
  vt = sqrt(w * w / 2 + a * d);
  r = l - d;
  if (fcmp(d - v * v / 2 / a) <= 0 && fcmp(sqrt(2 * a * d) - w) <= 0) {
    t1 = sqrt(2 * d / a);
    vd = sqrt(2 * a * d);
  } else if (fcmp(d - v * v / 2 / a) >= 0 && fcmp(w - v) >= 0) {
    t1 = d / v + v / 2 / a;
    vd = v;
  } else if (fcmp(v - vt) >= 0 && fcmp(vt - w) >= 0) {
    t1 = (2 * vt - w) / a;
    vd = w;
  } else {
    t1 = d / v + (2 * v - w) / a - (2 * v * v - w * w) / 2 / a / v;
    vd = w;
  }
  if (fcmp(r - (v * v - vd * vd) / 2 / a) >= 0)
    t2 = r / v + (v - vd) / a - (v * v - vd * vd) / 2 / a / v;
  else
    t2 = (sqrt(2 * a * r + vd * vd) - vd) / a;
  printf("%.10f\n", t1 + t2);
  return 0;
}
