#include <bits/stdc++.h>
using namespace std;
double a, v, l, d, w, t1, t2, t3, t4, t5, dis1, dis2, dis3, v1;
double chuli(double x) {
  double diss = (v + w) * ((v - w) / a) / 2;
  if (diss >= x)
    return (-2.0 * w + sqrt(4.0 * w * w + 8.0 * a * (x))) / (2.0 * a);
  else
    return (v - w) / a + (x - diss) / v;
}
int main() {
  cin >> a >> v >> l >> d >> w;
  if (v >= w) {
    t1 = w / a;
    dis1 = a * t1 * t1 / 2;
    v1 = a * sqrt(2 * d / a);
    if (dis1 >= l)
      printf("%.12lf\n", sqrt(2.0 * l / a));
    else if (dis1 >= d)
      printf("%.12lf\n", t1 + chuli(l - dis1));
    else {
      dis2 = 2 * (v - w) / a * w + (v - w) * (v - w) / a;
      if (dis1 + dis2 >= d) {
        t2 = 2.0 * (-2.0 * w + sqrt(4.0 * w * w + 4.0 * a * (d - dis1))) /
             (2.0 * a);
        t3 = chuli(l - d);
        printf("%.12lf\n", t1 + t2 + t3);
      } else {
        t2 = v / a;
        t3 = (v - w) / a;
        t4 = (d - dis2 - dis1) / v;
        t5 = chuli(l - d);
        printf("%.12lf\n", t2 + t3 + t4 + t5);
      }
    }
  } else {
    t1 = v / a;
    dis1 = a * t1 * t1 / 2;
    if (dis1 < l)
      t2 = (l - dis1) / v;
    else {
      t1 = sqrt(2 * l / a);
      t2 = 0.0;
    }
    printf("%.12lf\n", t1 + t2);
  }
  return 0;
}
