동계 올림픽에서 우리나라가 자신 있어 하는 종목 중에 쇼트 트랙이 있다. 개인전이 끝난다음에, 여러 사람들이 이어서 달리는 계주를 단체전으로 치르게 된다. 한 사람마다 200 미터의 트랙을 두 바퀴씩 돌고서 다음 사람에게 차례를 넘겨 주는데, 출발선을 기준으로 후방 20 미터 지점부터 전방 20 미터 지점 사이에서 차례로 넘겨 주어야 한다.
이어받는 구간의 폭이 잇다는 뜻은 한 사람이 달리게 되는 거리가 가변적이라는 뜻이다. 계주에 참가하는 선수들마다 실력 차이가 있기 때문에, 어떤 선수가 좀 더 늦게 또는 좀 더 일찍 차례를 넘겨주어서 달리는 거리에 변화가 생기면, 전체 팀의 기록이 바퀴게 된다. 따라서 선수들이 각각 차례를 이어줄 때,어느 위치에서 이어줄지 좋은 전략을 짜는 것이 중요하다.
우리는 프로그램을 이용해 풀고자 하는 문제도 선수들이 각각 차례로 이어줄 위치를 잘 조정해서 모든 선수가 트랙을 완주하는데 걸리는 시간을 최대한 줄이는 것이다. 문제를 간단히 하기 위해, 차례를 이어받을 수 있는 위치를 출발선 -20 미터 위치부터 +20 미터 위치까지 1 미터 단위로 제한하기로 한다. 선수들의 능력은 두 개의 수치에 의해서 주어지는데, 어떤 선수의 이 수치가 a 와 b 라고 할 때, 거리 x 미터를 달렸을 경우 걸리는 시간은
을 소수점 세째 자리에서 반올림한 값으로 계산한다고 한다.
입력 4 110 30 100 40 104 29 115 20 출력 88.48
출처: