N, K, T, U, V, L = gets.split.map(&:to_f)
stock = 0
restTime = 0.0
time = 0.0
distance = 0.0
N.to_i.times do
  d = gets.to_f
  if restTime > 0.0 || stock > 0
    t = (d - distance) / V
    while true do
      break if restTime >= t || stock == 0
      restTime += T
      stock -= 1
    end
    if restTime >= t
      restTime -= t
      time += t
    else
      time += restTime
      time += (d - distance - V * restTime) / U
      restTime = 0.0
    end
    distance = d
  else
    time += (d - distance) / U
    distance = d
  end
  if stock < K
    stock += 1
  else
    restTime = T
  end
end

if restTime > 0.0 || stock > 0
  t = (L - distance) / V
  while true do
    break if restTime > t || stock == 0
    restTime += T
    stock -= 1
  end
  if restTime >= t
    restTime -= t
    time += t
  else
    time += restTime
    time += (L - distance - V * restTime) / U
    restTime = 0.0
  end
  distance = L
else
  time += (L - distance) / U
  distance = L
end

p time