#include using namespace std; #define TRACE(x) cerr << #x << ' ' << x << endl #define FOR(i, a, b) for (int i = (a); i < int(b); i++) #define REP(i, n) FOR(i, 0, n) #define _ << ' ' << typedef long long llint; typedef long long ll; typedef pair pii; #define fi first #define sec second #define pb push_back double Tf, Vf, Hf, Td, Vd, Hd; bool check(double T) { double H = Hf - T * T / 2; if (Hd < H) return false; double Tjump = (sqrt(Hd * 6) - sqrt((Hd - H) * 6)) / 3; double Trun = T - (Td - Tf); return Tjump <= Trun && Trun * Vd >= T * Vf; } int main() { cin >> Tf >> Vf >> Hf >> Td >> Vd >> Hd; double sol; double maxT = sqrt(Hf * 2); if (!check(maxT)) { sol = Vf * maxT / Vd * 2 + Td; } else { double lo = 0, hi = maxT; for (int iter = 0; iter < 1000; iter++) { double mid = (lo + hi) / 2; if (check(mid)) hi = mid; else lo = mid; } sol = Tf + lo + Vf * lo / Vd; } cout << fixed << setprecision(7) << sol; return 0; }