체크포인트 달리기
시간 제한1초메모리 제한1024 MB
일직선 위 모든 체크포인트를 한 번에 최대 K개씩 체크하며 출발점으로 돌아올 때, 총 이동 거리의 최솟값을 구한다.
문제
철수는 체크포인트 달리기라는 경기에 출전했다. 체크포인트 달리기란 출발점에서 출발하여 길에 있는 모든 체크포인트에 최소 한 번씩 체크하고 출발점으로 돌아오는 경기이다. 출발점은 원점에 있고, 일직선으로 뻗은 길에 개의 체크포인트가 있다. 번째 체크포인트는 좌표 에 있다.
체크포인트 달리기에는 특별한 규칙이 있는데, 출발점에서 출발하여 출발점으로 돌아오기 전까지 최대 개의 체크포인트에만 체크할 수 있다. 예를 들어 가 이라면, 출발점에서 출발하여 개의 체크포인트를 체크하고, 출발점으로 돌아온 뒤, 다시 다른 체크포인트를 향해 달려가야 한다. 체크포인트를 체크하지 않고 지나칠 수도 있다.
철수가 이동 거리를 최소화하면서 모든 체크포인트를 체크할 수 있게 도와주자.
입력
첫 번째 줄에 체크포인트의 개수 과 한 번에 체크할 수 있는 체크포인트의 개수 가 주어진다.
이후 개의 줄에 체크포인트의 위치 가 주어진다.
출력
철수가 이동 거리를 최소화하면서 모든 체크포인트를 체크할 때, 그 이동 거리를 출력한다.
제한
- 주어지는 모든 수는 정수이다.