원자력 자동차 경주

시간 제한1초메모리 제한128 MB

문제

2020년, 원자력으로 움직이는 자동차들의 경주가 열린다. 오늘날의 자동차 경주와 달리 연료 보급은 각 팀의 관심사가 아니다. 자동차는 재급유 없이 코스 전체를 달릴 수 있다. 대신 가장 중요한 요소는 타이어이다. 각 팀은 자동차의 타이어를 어디에서 교체할지 신중하게 계획해야 한다.

이 경주는 코스에 $n$개의 체크포인트가 있는 도로 경주이다. 각 체크포인트의 출발점으로부터의 거리는 $a_1, a_2, \ldots, a_n$(킬로미터)이며, $n$번째 체크포인트가 결승점이다. $i < n$인 $i$번째 체크포인트에서는 타이어를 교체할 수 있고, 각 체크포인트에서 교체할지 말지는 팀이 자유롭게 정한다. 타이어 교체에는 (감속과 가속에 드는 시간을 포함하여) $b$초가 걸린다. 교체하지 않으면 시간 손실은 없다.

타이어를 갓 교체한 직후에는 타이어 온도가 설계상 최적값보다 낮아 빠르게 달릴 수 없다. 반대로 교체 없이 오래 달리면 타이어가 닳아 노면을 잘 붙잡지 못해 역시 빠르게 달릴 수 없다. $x$를 가장 최근에 타이어를 교체한 지점(또는 출발점)으로부터의 거리(킬로미터, 음이 아닌 정수)라고 하자. $x$에서 $x+1$까지의 1킬로미터 구간을 달리는 데 걸리는 시간은 다음과 같다(초).

  • $x \ge r$이면 $\dfrac{1}{v - e \times (x - r)}$
  • $x < r$이면 $\dfrac{1}{v - f \times (r - x)}$

여기서 $r$, $v$, $e$, $f$는 주어지는 상수이다. 결승점까지의 총 시간을 최소로 하는 타이어 교체 전략을 구하여라.

입력

입력은 여러 개의 데이터 세트로 이루어지며, 각 데이터 세트는 하나의 경주를 나타낸다. 데이터 세트의 형식은 다음과 같다.

n
a1 a2 ... an
b
r v e f

한 줄에 여러 값이 있으면 공백 하나로 구분되며, 각 기호의 의미는 위 설명과 같다.

$n$은 $n \le 100$인 양의 정수이다. 각 $a_i$는 $0 < a_1 < a_2 < \cdots < a_n \le 10000$을 만족하는 양의 정수이다. $b$는 $b \le 100.0$인 양의 실수이다. $r$은 $0 \le r \le a_n - 1$을 만족하는 음이 아닌 정수이다. $v$, $e$, $f$는 각각 양의 실수이며, $v - e \times (a_n - 1 - r) \ge 0.01$과 $v - f \times r \ge 0.01$이 성립한다고 가정해도 좋다.

입력의 끝은 $0$ 하나만 있는 줄로 표시된다.

출력

각 데이터 세트마다, 최적 전략을 택했을 때 결승점에 도달하는 최소 총 시간(초)을 소수점 아래 정확히 넷째 자리까지 반올림하여 한 줄에 출력한다(예: printf의 %.4f 형식). 공백 등 불필요한 문자는 출력하지 않는다.