#include <bits/stdc++.h>
using namespace std;
int main() {
  double A, V;
  scanf("%lf%lf", &A, &V);
  double Lim, L1, L2;
  scanf("%lf%lf%lf", &L2, &L1, &Lim);
  L2 -= L1;
  long double a = A, v = V, lim = Lim, l1 = L1, l2 = L2;
  if (v < lim) lim = v;
  long double ans = 0;
  long double v0_w;
  long double nl1 = 0.5 * lim * lim / a;
  long double nl2 = 2 * 0.5 * v * v / a - nl1;
  if (l1 <= nl1) {
    v0_w = sqrt(2 * l1 * a);
    ans += v0_w / a;
  } else if (l1 <= nl2) {
    v0_w = lim;
    long double vtmp = sqrt((l1 + nl1) * a);
    ans += vtmp / a + (vtmp - v0_w) / a;
  } else {
    v0_w = lim;
    ans += v / a + (v - v0_w) / a + (l1 - nl2) / v;
  }
  long double nl3 = 0.5 * v * v / a - 0.5 * v0_w * v0_w / a;
  if (l2 < nl3) {
    long double v1_w = sqrt(2 * (0.5 * v0_w * v0_w / a + l2) * a);
    ans += (v1_w - v0_w) / a;
  } else {
    ans += (v - v0_w) / a + (l2 - nl3) / v;
  }
  printf("%.5f\n", (double)ans);
  return 0;
}
