#include using namespace std; long double tf, vf, hf, td, vd, hd; long double hft(long double t) { return max(0.0l, hf-(t-tf)*(t-tf)/2.0); } long double hdt(long double t) { // return hd; return min(hd, 3.0/2.0*(t-td)*(t-td)); } long double dft(long double t) { t = min(t, sqrt(2*hf)+tf); return max(vf*(t-tf), 0.0l); } long double ddt(long double t) { return max(vd*(t-td), 0.0l); } int main() { cin >> tf >> vf >> hf >> td >> vd >> hd; long double x; /* while(cin >> x) { cout << hft(x) << endl; cout << hdt(x) << endl; cout << dft(x) << endl; cout << ddt(x) << endl; } */ long double hi=1000000000000.0, lo=tf, mid=0; for(int i=0; i<85; i++) { mid = (hi+lo)/2; if((hft(mid) > hdt(mid))||(dft(mid) > ddt(mid))) lo=mid; else hi=mid; } cout.precision(20); cout << mid+dft(mid)/vd << "\n"; }