#include <bits/stdc++.h>
using namespace std;
double a, v, l, d, w, ans, L, t1, t2, v_2;
int main() {
  scanf("%lf%lf%lf%lf%lf", &a, &v, &l, &d, &w);
  L = l - d;
  double A = w * w;
  if (v <= w || A >= 2 * a * d) {
    if (2 * a * l >= v * v) {
      ans = v / a;
      ans += (l - v * v / 2 / a) / v;
    } else
      ans = sqrt(2 * l / a);
  } else {
    double V = sqrt((2 * a * d + w * w) / 2);
    if (V >= v) {
      t1 = v / a + (v - w) / a;
      t1 += (d - (2 * v * v - w * w) / 2 / a) / v;
    } else {
      t1 = V / a + (V - w) / a;
    }
    if (w * w + 2 * a * L <= v * v) {
      v_2 = sqrt(w * w + 2 * a * L);
      t2 = (v_2 - w) / a;
    } else {
      t2 = (v - w) / a;
      t2 += (L - (v * v - w * w) / (2 * a)) / v;
    }
    ans = t1 + t2;
  }
  printf("%.12lf", ans);
  return 0;
}
