#include #include #include #include #include #include #include using namespace std; #define REP(A,B) for(int (A)=0;(A)<(B);(A)++) #define ld long double int main() { ld Tf, Vf, Hf, Td, Vd, Hd; scanf("%Lf%Lf%Lf%Lf%Lf%Lf", &Tf, &Vf, &Hf, &Td, &Vd, &Hd); ld tdrop = sqrt(2*Hf)+Tf; ld xdrop = Vf*(tdrop-Tf); ld tjump = sqrt(2*Hd/3); ld vjump = 3*tjump; ld LFT = Td, RGT = Td+2*xdrop/Vd; for(int its = 0; its < 50; its++) { ld MED = (LFT+RGT)/2; ld A = min(Vf*(MED-Tf), xdrop); ld AA = Vd*(MED-Td); ld B = max(Hf-0.5*(MED-Tf)*(MED-Tf), 0.0L); ld BB = vjump*(MED-Td)-3/2.0*(MED-Td)*(MED-Td); if((MED-Td) >= tjump) BB = Hd; if(A <= AA && B <= BB) { RGT = MED; } else { LFT = MED; } } ld RES = LFT+min(xdrop, Vf*(LFT-Tf))/Vd; // printf("%.8lf %.8lf\n", (double)LFT, (double)RGT); printf("%.8lf\n", (double)RES); return 0; }