원자력 자동차 경주
시간 제한1초메모리 제한128 MB
체크포인트마다 타이어 교체 여부를 정해 최근 교체 지점부터의 거리에 따라 속도가 변하는 모델에서 전체 완주 시간을 최소화하는 전략을 구합니다.
문제
2020년, 원자력으로 움직이는 자동차들의 경주가 열린다. 오늘날의 자동차 경주와 달리 연료 보급은 각 팀의 관심사가 아니다. 자동차는 재급유 없이 코스 전체를 달릴 수 있다. 대신 가장 중요한 요소는 타이어이다. 각 팀은 자동차의 타이어를 어디에서 교체할지 신중하게 계획해야 한다.
이 경주는 코스에 개의 체크포인트가 있는 도로 경주이다. 각 체크포인트의 출발점으로부터의 거리는 (킬로미터)이며, 번째 체크포인트가 결승점이다. 인 번째 체크포인트에서는 타이어를 교체할 수 있고, 각 체크포인트에서 교체할지 말지는 팀이 자유롭게 정한다. 타이어 교체에는 (감속과 가속에 드는 시간을 포함하여) 초가 걸린다. 교체하지 않으면 시간 손실은 없다.
타이어를 갓 교체한 직후에는 타이어 온도가 설계상 최적값보다 낮아 빠르게 달릴 수 없다. 반대로 교체 없이 오래 달리면 타이어가 닳아 노면을 잘 붙잡지 못해 역시 빠르게 달릴 수 없다. 를 가장 최근에 타이어를 교체한 지점(또는 출발점)으로부터의 거리(킬로미터, 음이 아닌 정수)라고 하자. 에서 까지의 1킬로미터 구간을 달리는 데 걸리는 시간은 다음과 같다(초).
- 이면
- 이면
여기서 , , , 는 주어지는 상수이다. 결승점까지의 총 시간을 최소로 하는 타이어 교체 전략을 구하여라.
입력
입력은 여러 개의 데이터 세트로 이루어지며, 각 데이터 세트는 하나의 경주를 나타낸다. 데이터 세트의 형식은 다음과 같다.
n
a1 a2 ... an
b
r v e f
한 줄에 여러 값이 있으면 공백 하나로 구분되며, 각 기호의 의미는 위 설명과 같다.
은 인 양의 정수이다. 각 는 을 만족하는 양의 정수이다. 는 인 양의 실수이다. 은 을 만족하는 음이 아닌 정수이다. , , 는 각각 양의 실수이며, 과 이 성립한다고 가정해도 좋다.
입력의 끝은 하나만 있는 줄로 표시된다.
출력
각 데이터 세트마다, 최적 전략을 택했을 때 결승점에 도달하는 최소 총 시간(초)을 소수점 아래 정확히 넷째 자리까지 반올림하여 한 줄에 출력한다(예: printf의 %.4f 형식). 공백 등 불필요한 문자는 출력하지 않는다.