#include <bits/stdc++.h>
using namespace std;
double a, v, l, d, w;
int main() {
  a = ({
    int t;
    scanf("%d", &t);
    t;
  }),
  v = ({
    int t;
    scanf("%d", &t);
    t;
  }),
  l = ({
    int t;
    scanf("%d", &t);
    t;
  }),
  d = ({
    int t;
    scanf("%d", &t);
    t;
  }),
  w = ({
    int t;
    scanf("%d", &t);
    t;
  });
  double time1 = v / a;
  double dist1 = v / 2 * time1;
  if (w >= v) w = v;
  double timetodec = (v - w) / a;
  double disttodec = (v + w) / 2 * timetodec;
  if (dist1 + disttodec <= d) {
    double diststr = d - dist1 - disttodec;
    double timestr = diststr / v;
    double timeatd = time1 + timetodec + timestr;
    double distrem = l - d;
    double disttoacc = disttodec;
    if (disttoacc <= distrem) {
      double timefinish = timeatd + timetodec;
      distrem -= disttoacc;
      timefinish += distrem / v;
      printf("%.7lf\n", timefinish);
    } else {
      double finalv = sqrt(w * w + 2 * a * distrem + double(1e-9));
      double timefinish = timeatd + (finalv - w) / a;
      printf("%.7lf\n", timefinish);
    }
  } else {
    double velatd = sqrt(2 * a * d);
    if (velatd <= w) {
      if (dist1 <= l) {
        double timefinish = time1 + (l - dist1) / v;
        printf("%.7lf\n", timefinish);
      } else {
        double timefinish = sqrt(2 * l / a);
        printf("%.7lf\n", timefinish);
      }
    } else {
      double time2 = w / a;
      double dist2 = w * w / (2 * a);
      double disttod = d - dist2;
      double distreq = disttod / 2;
      double vreq = sqrt(w * w + 2 * a * distreq + double(1e-9));
      double treq = (vreq - w) / a;
      double timeatd = time2 + 2 * treq;
      double distrem = l - d;
      double disttoacc = disttodec;
      if (disttoacc <= distrem) {
        double timefinish = timeatd + timetodec;
        distrem -= disttoacc;
        timefinish += distrem / v;
        printf("%.7lf\n", timefinish);
      } else {
        double finalv = sqrt(w * w + 2 * a * distrem + double(1e-9));
        double timefinish = timeatd + (finalv - w) / a;
        printf("%.7lf\n", timefinish);
      }
    }
  }
  return 0;
}
