#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
const int inf = 2e9;
const int mod = 1e9 + 7;
const long long INF = 2e18;
double a, v, l, d, w, t, t1, second, S1, v1;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> a >> v >> l >> d >> w;
  cout.precision(6);
  cout << fixed;
  second = v * v / 2.0 / a;
  if (v <= w || (v > w && 2.0 * d * a <= w * w)) {
    cerr << "Case 1.";
    if (second > l) {
      cerr << "1\n";
      return cout << sqrt(2.0 * l / a), 0;
    }
    cerr << "2\n";
    return cout << sqrt(2.0 * second / a) + (l - second) / v, 0;
  }
  second = w * w / 2.0 / a;
  t = w / a;
  cerr << "t" << ' ' << t << '\n';
  v1 = sqrt((second + d) * a);
  t1 = (v - w) / a;
  cerr << "Case 2.1.";
  if (v1 > v) {
    cerr << "1\n";
    S1 = (v * v - w * w) / 2.0 / a;
    t += 2 * t1 + (d - second - 2 * S1) / v;
  } else {
    cerr << "2\n";
    t += 2.0 * (v1 - w) / a;
  }
  cerr << "t" << ' ' << t << '\n';
  S1 = (v * v - w * w) / 2.0 / a;
  cerr << "Case 2.2.";
  if (d + S1 > l) {
    cerr << "1\n";
    t += (sqrt(2.0 * a * (l - d) + w * w) - w) / a;
  } else {
    cerr << "2\n";
    t += t1 + (l - d - S1) / v;
  }
  cout << t;
  return 0;
}
