#include <bits/stdc++.h>
using namespace std;
inline double fac(double a, double b, double c) {
  double dlt = (b * b) - 4 * a * c;
  dlt = sqrt(dlt);
  return (-b + dlt) / (2 * a);
}
int main() {
  double a, v;
  cin >> a >> v;
  double l, n, w;
  cin >> n >> l >> w;
  double t = (double)v / a, t2 = (double)(v - w) / a;
  double len = (double)v * v / 2 / a;
  double len2 = ((double)v * v - (double)w * w) / 2 / a;
  if (w > v || sqrt(2 * a * l) <= w) {
    if (sqrt(2 * a * n) <= v) {
      printf("%.10lf\n", sqrt(2.0 * n / a));
      return 0;
    }
    double les = n - len;
    t += les / v;
    printf("%.10lf\n", t);
    return 0;
  }
  double res = 0;
  if (len + len2 > l) {
    double x = sqrt(a * l + (double)w * w / 2.0);
    double t1 = x / a, t2 = (x - w) / a;
    res = t1 + t2;
  } else {
    double l1 = (v * (double)v / a);
    l1 -= (w * (double)w) / (2.0 * a);
    double l2 = l - l1;
    double t1 = l2 / v;
    res = t1 + ((double)v / a * 2 - (double)w / a);
  }
  if (l + len2 > n)
    res += fac(0.5 * a, w, -(n - l));
  else {
    double les = n - len2 - l;
    res += t2, res += les / v;
  }
  printf("%.10lf\n", res);
  return 0;
}
