"""
a = 1/2
b = -2*td
c = hd-hf+0.5*td*td
d = (b*b-4*a*c)
ground = vf*(2*hf)**0.5
print(ground/vd, d)
if(d < 0):
	print((2*td*vf)/(vd-vf), td + 2*ground/vd)
	print(tf + min((2*td*vf)/(vd-vf), td + 2*ground/vd))
else:
	t = (-b + d**0.5)/(2*a)
	
	print(tf + 2*t)
"""
global tf, vf, hf, td, vd, hd
tf, vf, hf, td, vd, hd = [int(i) for i in input().split()]
td -= tf
def dogh(t):
	global tf, vf, hf, td, vd, hd
	v0 = (6*hd)**0.5
	if(t > v0/3):
		return hd
	return v0*t - 3*t*t/2
	
def frisbeeh(t):
	global tf, vf, hf, td, vd, hd
	return hf-0.5 * ((t+td)**2)
	
def dogx(t):
	global tf, vf, hf, td, vd, hd
	return t*vd
	
def frisx(t):
	global tf, vf, hf, td, vd, hd
	return min((t+td)*vf, vf*((2*hf)**0.5))
	
mi = 0
ma = 10**13

while(ma-mi > 10**-4):
	mean = ma+mi
	mean /= 2
	if(dogh(mean) >= frisbeeh(mean) and dogx(mean) >= frisx(mean)):
		ma = mean
	else:
		mi = mean
		
mean = (ma + mi)/2
print(td+tf+ mean + frisx(mean)/vd)

	
