#include using namespace std; typedef long double T; T solve(T b, T c) { T delta = b * b - 4 * c; if(delta < 0) return -1; return (-b + sqrt(delta)) / 2; } int main() { int Tf, Vf, Hf, Td, Vd, Hd; scanf("%d %d %d %d %d %d", &Tf, &Vf, &Hf, &Td, &Vd, &Hd); T tg = sqrt(2 * Hf); T dist = tg * Vf; T ans = 1e30; if(dist / Vd + Td >= tg + Tf) ans = Td + 2 * dist / Vd; if(Vd > Vf) { T t1 = sqrt(2 * (Hf - Hd)) + Tf; //printf("%.10Lf %.10Lf\n", t1, sqrtl(2.0 * Hd / 3) + Td); if(t1 < sqrt(2.0 * Hd / 3) + Td) { T vh = sqrt(2.0 * 3 * Hd) + Td - Tf; t1 = solve(-vh, Hf - 0.5 * (T)(Td - Tf) * (Td - Tf)); //printf("%.10Lf\n", t1); if(t1 < 0) t1 = 1e30; else t1 += Td; } T t2 = (T)Vf * (Td - Tf) / (Vd - Vf) + Td; //printf("%.10Lf %.10Lf\n", t1, t2); if(t1 <= t2) { ans = min(ans, 2 * t2 - Td); //puts("a"); } else { dist = (t1 - Tf) * Vf; //printf("%.10Lf\n", dist); ans = min(ans, t1 + dist / Vd); //puts("b"); } } printf("%.10Lf\n", ans); }