강 건너기

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

Nefario 박사가 연구실에서 오래 지내다가 여행을 떠난다. 가는 길에 강을 하나 건너야 한다. 다행히 강에는 건너편으로 이어지는 일직선 위에 돌 NN개가 놓여 있어서 발판으로 쓸 수 있다. 강의 폭, 즉 건너야 하는 전체 거리는 LL이다.

박사의 스쿠터는 공중에 뜨지만 멀리 뛰지는 못해서, 더 멀리 뛰려면 로켓 부스터를 만들어야 한다. 부스터 가격은 성능에 따라 달라진다. 거리 RR까지 뛸 수 있는 부스터를 만드는 비용은 R2R^2이다. 부스터는 여러 번 쓸 수 있지만 한 번 뛸 때마다 CC가 더 든다. 예를 들어 사거리 1010짜리 부스터를 만들어 다섯 번 뛰면 전체 비용은 102+5×C=100+5C10^2 + 5 \times C = 100 + 5C이다.

출발점은 이쪽 강가인 거리 00이고 도착점은 건너편 강가인 거리 LL이다. 한 번 뛸 때는 앞으로 RR 이하만큼 이동하며, 착지하는 곳은 돌이거나 건너편 강가여야 한다.

강의 폭 LL, 점프 한 번에 드는 비용 CC, 돌 NN개의 위치가 주어진다. 강을 건너는 최소 비용 MM과 그때의 점프 횟수 JJ, 부스터의 사거리 RR을 구하라.

강 건너기

위 그림에서 박사는 폭이 66인 강을 건넌다. 돌은 거리 11, 22, 33, 55에 있다. 사거리 33짜리 부스터를 만들면 두 번 뛰어서 강을 건널 수 있다.

1L1091 \le L \le 10^9, 0C1060 \le C \le 10^6, 0N<10000 \le N < 1000이다. 돌의 위치는 00보다 크고 LL보다 작은 정수다. 사거리 RR은 양의 정수로 고른다. 값이 커지므로 64비트 정수를 써야 하고, 가능한 사거리를 모두 훑는 방법으로는 제한 시간 안에 풀 수 없다.

입력

입력은 테스트 케이스 여러 개로 이루어진다. 각 테스트 케이스의 첫 줄에 정수 LL, CC, NN이 주어진다. 차례대로 강의 폭, 점프 한 번에 드는 비용, 돌의 개수다. 다음 NN개 줄에는 각각 돌 하나의 위치가 주어진다. 돌은 위치 순서대로 주어지지 않을 수 있다. 마지막 줄에는 00 하나만 있고, 그 줄에서 입력이 끝난다.

출력

각 테스트 케이스마다 강을 건너는 최소 비용을 한 줄에 다음 형식으로 출력한다.

Minimum cost M achieved with J jumps of range R

MM은 최소 비용, RR은 그 비용을 만드는 사거리, JJ는 사거리 RR로 강을 건너는 데 필요한 최소 점프 횟수다. 최소 비용을 만드는 사거리가 여러 개면 그중 가장 작은 것을 RR로 출력한다.