전봇대

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

문제

일직선 위에 전봇대 NN개가 한 줄로 서 있다. 이 직선을 xx-축이라 하고, 각 전봇대의 위치를 xx-좌표 x0,x1,,xN1x_0, x_1, \dots, x_{N-1}로 나타내자. 항상 x0=0x_0 = 0이고, i1i \ge 1xix_i는 양의 정수이며, 좌표는 서로 다르고 오름차순으로 주어진다.

이웃한 두 전봇대 사이의 간격이 모두 같아지도록 일부 전봇대를 옮기려고 한다. 이때 옮기는 전봇대들의 이동 거리 합이 최소가 되게 해야 한다. 단, x0=0x_0 = 0에 있는 전봇대는 고정되어 움직일 수 없고, 옮기는 전봇대는 정수 좌표로만 이동할 수 있다.

전봇대의 순서는 바뀌지 않으므로, 최종 배치에서 왼쪽에서 ii번째(00번부터 시작) 전봇대는 좌표 idi \cdot d에 놓인다. 여기서 dd는 이웃한 전봇대 사이의 공통 간격이며 양의 정수다.

예를 들어 전봇대가 좌표 0,4,6,90, 4, 6, 9에 있다고 하자.

간격을 44로 만들기 위해 좌표 6699의 전봇대를 각각 881212로 옮기면, 이동 거리 합은 2+3=52 + 3 = 5이다.

하지만 좌표 44의 전봇대 하나만 33으로 옮기면 모든 간격이 33이 되고, 이동 거리 합은 11뿐이다.

전봇대들의 위치가 주어질 때, 모든 이웃한 간격이 같아지도록( x0x_0은 고정) 전봇대를 옮기는 데 필요한 이동 거리 합의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 전봇대의 수 NN (1N1000001 \le N \le 100000)이 주어진다.

둘째 줄에 전봇대의 위치를 나타내는 서로 다른 xx-좌표 x0,x1,,xN1x_0, x_1, \dots, x_{N-1}이 공백으로 구분되어 오름차순으로 주어진다. 모든 xix_i는 정수이며, x0=0x_0 = 0이고 i1i \ge 1일 때 1xi1091 \le x_i \le 10^9이다.

출력

이웃한 모든 간격이 같아지도록 전봇대를 옮길 때, 이동 거리 합의 최솟값을 한 줄에 출력한다.

힌트

중간 계산 값과 정답이 32비트 정수 범위를 넘을 수 있으므로 64비트 정수 자료형을 사용하기를 권한다.