문제
KOI 마을에는
사람들이 살고 있는 집의 좌표를 작은 순서대로 차례대로 나열했을 때,
마을에 일이 생기면, 마을 사람들은 회의 세트를 통해서 일을 해결한다.
회의 세트는 마을 사람들 전체가 참여할 수도 있고, 일부만 참여할 수도 있다.
회의 세트는 회의들로 구성된다.
회의는 회의 세트의 모든 참여자들이 그중 한 사람의 집에서 모이는 방식으로 진행된다.
회의 세트에서는 모든 참여자들의 집에서 각각 한 번씩 회의를 한다.
즉, 회의 세트에
회의 한 번에 필요한 비용은 회의에 참여하는 각 사람이 자신의 집에서 회의 장소인 집까지 이동하는 거리의 합이다.
회의 세트의 피로도는 각 회의를 할 때 모이는 집의 순서에 따라 달라진다.
회의 세트의 피로도는 모이는 순서에서 인접한 두 집의 회의 비용 차이의 합으로 정의한다.
예를 들어, 좌표
이때, 좌표가
좌표가 10인 집에 모이기 위한 비용은
좌표가
이때, 회의를 위해 모이는 집의 좌표 순서가
반면, 모이는 집의 순서가
이 순서로 모일 때, 회의 세트의 피로도가 최소이다.
단, 회의 세트에 참여하는 사람이 1명 이하일 경우,
KOI 마을에서는 총
각 회의 세트의 최소 피로도를 구하는 프로그램을 작성하라.
[제약 조건]
주어지는 모든 수는 정수이다.
입력
첫 번째 줄에
두 번째 줄에는 마을에 사람이 살고 있는 집들의 좌표
다음
출력
부분문제
번호 | 점수 | 조건 |
---|---|---|
#1 | 5점 | |
#2 | 15점 | |
#3 | 15점 | |
#4 | 30점 | |
#5 | 35점 | 추가 제약 조건 없음. |
예제1
5 1
1 3 10 11 15
3 11
7
예제2
5 5
1 3 11 17 20
1 20
2 2
2 19
2 28
10 16
15
0
8
16
0