#include using namespace std; double tf, vf, hf, td, vd, hd; double hft(double t) { return max(0.0, hf-(t-tf)*(t-tf)/2.0); } double hdt(double t) { return hd; // return min(hd, 3.0/2.0*(t-td)*(t-td)); } double dft(double t) { t = min(t, sqrt(2*hf)+tf); return max(vf*(t-tf), 0.0); } double ddt(double t) { return max(vd*(t-td), 0.0); } int main() { cin >> tf >> vf >> hf >> td >> vd >> hd; double x; /* while(cin >> x) { cout << hft(x) << endl; cout << hdt(x) << endl; cout << dft(x) << endl; cout << ddt(x) << endl; } */ 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(9); cout << mid+dft(mid)/vd << "\n"; }