2020년, atomically energized cars(원자력차)가 나온다. 지금 자동차경주와는 다르게 연료주입의 문제는 레이스팀들에게 영향을 주지 않는다. 대신에, 중요한 것은 타이어의 문제다.
팀들은 타이어를 어디에서 교체해야 할 것인지 신중하게 고려해야한다.
레이스코스는 n개의 체크포인트를 가진 코스이며, 체크포인트들의 출발점으로부터의 거리는 a1,a2, ... , an(단위 : Km)이다. n번째의 체크포인트가 골지점이다.
각 팀들은, i번째 체크포인트에서 (i < n) 타이어를 바꿀 수 있다. 바꾸지 않아도 상관없다.
타이어를 바꾸는데는 b초의 시간이 걸리며, (멈추는 시간이나 가속하는 시간도 포함한다) 바꾸지 않을시에는 체크포 인트에서 소비하는 시간은 없다. 타이어를 바꾸고 얼마 안된 차들은 그다지 빨리 달릴 수 없는데, 타이어의 온도가 이 타이어의 최적온도보다 낮기 떄문이다.
타이어를 바꾸지 않고 오래 달려도 그다지 빨리 달릴 수 없는데, 마모된 타이어는 도로의 표면을 제대로 밀지 못하기 때문이다.
x킬로미터에서 x+1킬로미터로 가는데 걸리는 시간은 다음 식을 따른다.(초단위).
x는 타이어를 바꾼 체크포인트나 시작지점에서 현재지점까지의 거리고 r,v,e,f는 입력데이터에 주어진다.
1/(v - e * (x - r)) (if x >= r) 1/(v - f * (r - x)) (if x < r)문제는 골지점까지의 시간을 최소로 할 수 있는 최선의 수단을 알아낼 수 있는 프로그램을 만드는 것이다.
n a1 a2 . . . an b r v e f입력된 문자는 위에서 설명했다. 만약 한줄에 2개 이상의 입력이 들어올시 공백으로 나눈다.
n은 100을 넘지 않는 양의 정수다. 각 a1, a2, ..., 그리고 an 은 다음을 만족하는 양의 정수이다. 0 < a1 < a2 < . . . < an <= 10000.
b 는 100.0을 넘지 않는 10진수 실수이다. r 은 다음을 만족하는 음이 아닌 정수이다. 0 <= r <= an - 1.
각 v, e , f 는 양의 10진수 실수이다. v - e * (an - 1 - r) >= 0.01 이고 v - f * r >= 0.01 라는 사실을 알수 있다.
입력의 끝은 0으로 표시된다.
출력에는 그 실수 이외에는 공백과 같은 다른 어떠한 문자도 있어서는 안된다.
오차가 0.001보다 크지 않은 소수점 뒷자리수도 출력해아 한다.
입력 2 2 3 1.0 1 1.0 0.1 0.3 5 5 10 15 20 25 0.15 1 1.0 0.04 0.5 10 1783 3640 3991 4623 5465 5481 6369 6533 6865 8425 4.172 72 59.4705 0.0052834 0.0611224 0 출력 3.5397 31.9249 168.6682
출처:Japan 2005