Problem J: 나무 심기

Problem J: 나무 심기

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 62  Solved: 19
[Submit] [Status] [Web Board] [Creator:]

Description

직선으로 되어있는 도로의 한 편에 나무가 임의의 간격으로 심어져 있다. 동의대학교에서는 나무들이 모두 같은 간격이 되도록 나무를 추가로 심는 사업을 추진하고 있다. 그런데 예산 문제로 가능한 한 가장 적은 수의 나무를 심고 싶다.

편의상 나무들의 위치는 기준점으로부터 떨어져 있는 거리로 표현되며, 나무들의 위치는 모두 양의 정수이다.

예를 들어, 나무들이 (1, 3, 7, 13)의 위치에 있다면 (5, 9, 11)의 위치에 나무를 더 심으면 모든 나무들의 간격이 같게 된다. 또한, 나무들이 (2, 6, 12, 18)에 있다면 (4, 8, 10, 14, 16)에 나무를 더 심어야 한다.

심어져 있는 나무들의 위치가 주어질 때, 모든 나무들이 같은 간격이 되도록 새로 심어야 하는 나무의 최소 개수를 구하는 프로그램을 작성하라. 단, 추가되는 나무는 기존의 나무들 사이에만 심을 수 있다.

Input

첫째 줄에는 이미 심어져 있는 나무들의 개수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 1.000). 
둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 나무들의 위치가 양의 정수로 주어지며, 나무들의 위치를 나타내는 정수는 1,000,000 이하이다. 나무들의 위치를 나타내는 정수는 모두 다르다.

Output

모든 나무들이 같은 간격이 되도록 새로 심어야 하는 나무들의 최소 개수를 출력한다.

Sample Input Copy

4
2
6
12
18

Sample Output Copy

5