#include #include #include using namespace std; double Tf, Vf, Hf, Td, Vd, Hd; int main(){ ios_base::sync_with_stdio(false); cin >> Tf >> Vf >> Hf >> Td >> Vd >> Hd; Td -= Tf; double tlees = sqrt(2*Hf); double tviz = (Td*Vd)/(Vd-Vf); if (tviz < 1e-9 || tlees < tviz + 1e-9) {//nem eri el vizszintesen, leesik cout << fixed << setprecision(8) << 2*tlees*Vf/Vd + Td + Tf << endl; return 0; } //mostantol vizszintesen tviz utanbarmikor eleri double v0 = sqrt(6*Hd); double tfeler = v0 / 3; if (((tviz + 1e-9 > tfeler + Td) ? Hd : (v0*(tviz-Td)-1.5*(tviz-Td)*(tviz-Td))) >= Hf-tviz*tviz/2) { cout << fixed << setprecision(8) << 2*tviz*Vf/Vd + Td + Tf << endl; return 0; } //nem eri el tvizben double t = sqrt(2*(Hf-Hd)); //frizbi Hd magasan if (t > Td + tfeler - 1e-9) {//feler Hd magasra cout << fixed << setprecision(8) << t + t*Vf/Vd + Tf << endl; return 0; } //nem er fel Hd magasra => rogton ugrik, double b = (v0 - 3*Td)/2; double c = (3*Td*Td/2 - v0*Td - Hf)/2; t = (-b-sqrt(b*b-4*c))/2; cout << fixed << setprecision(8) << t + t*Vf/Vd + Tf << endl; return 0; }