랠리
시간 제한6초메모리 제한128 MB
최대 25개의 주유소 중 일부에서 연료를 채우며 총 주행 시간과 주유 시간의 합을 최소화한다.
문제
자동차 랠리를 준비하고 있으며, 경로에 있는 어떤 주유소에서 연료를 넣을지 정해야 합니다.
규칙은 다음과 같습니다.
- 주유소에서 한 번 주유하는 데 분이 걸립니다 ().
- 연료 탱크에는 최대 리터까지 담을 수 있습니다 ().
- 킬로미터를 달릴 때마다 그 끝에서 연료량 가 즉시 리터만큼 줄어듭니다 ().
- 자동차의 속도 (분당 킬로미터)는 연료량이 줄수록 커지지만, 연료가 없으면 전혀 움직이지 못합니다. 여기서 , 이며, 입력은 항상 인 동안 이 되도록 주어집니다(즉 ). 한 킬로미터를 달리는 동안 연료량은 일정하므로, 그 구간을 지나는 데 분이 걸립니다.
- 랠리의 전체 길이는 킬로미터입니다 ().
- 주유소는 개 있습니다 ().
- 번째 주유소는 출발점에서 킬로미터 떨어져 있습니다 (, 그리고 이면 ).
자동차는 킬로미터 지점에서 무료로 가득 채워 출발하고 킬로미터 지점에서 완주합니다. 주유소들 중 원하는 부분집합에서 연료를 넣을 수 있으며, 탱크 용량을 넘지 않는 범위에서 원하는 만큼 넣을 수 있습니다. 주유 정차는 한 번마다 분이 듭니다. 전체 시간은 주행 시간(킬로미터 전체에 대한 의 합)에 실제로 정차한 주유 횟수마다 분을 더한 값입니다.
랠리를 완주하는 데 걸리는 최소 전체 시간을 구하세요.
입력
입력에는 다음 정수들이 각각 한 줄에 하나씩, 이 순서대로 주어집니다: , , , , , , , 그리고 .
출력
최소 전체 시간(분)을 소수점 아래 정확히 여섯 자리까지 반올림하여 한 줄에 출력합니다.