### subroutines

def interval(x, r, v, e, f)
  if x >= r
    1.0 / (v - e * (x - r))
  else
    1.0 / (v - f * (r - x))
  end
end

### main

loop do
  n = gets.to_i
  break if n == 0

  ais = gets.split.map(&:to_i)
  ais.unshift(0)
  gl = ais.pop
  b = gets.to_f
  r, v, e, f = gets.split.map(&:to_f)
  r = r.to_i
  #p [ais, gl]
  #p b
  #p [r, v, e, f]

  tis = n.times.map{[0.0]}

  for x in (0...gl)
    ti = interval(x, r, v, e, f)
    tis[0][x + 1] = tis[0][x] + ti
  end
  #p tis[0]

  for k in (1...n)
    ai = ais[k]
    tis[k][ai] = (0...k).map{|i| tis[i][ai]}.min + b

    for x in (ai...gl)
      ti = interval(x - ai, r, v, e, f)
      tis[k][x + 1] = tis[k][x] + ti
    end
  end

  min_t = (0...n).map{|i| tis[i][gl]}.min
  puts "%.4f" % min_t
end