Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 300 点
問題文
数直線上に N 個の都市があり、i 番目の都市は座標 x_i にあります。
あなたの目的は、これら全ての都市を 1 度以上訪れることです。
あなたは、はじめに正整数 D を設定します。
その後、あなたは座標 X から出発し、以下の移動 1、移動 2 を好きなだけ行います。
- 移動 1: 座標 y から座標 y + D に移動する
- 移動 2: 座標 y から座標 y - D に移動する
全ての都市を 1 度以上訪れることのできる D の最大値を求めてください。
ここで、都市を訪れるとは、その都市のある座標に移動することです。
制約
- 入力はすべて整数である
- 1 \leq N \leq 10^5
- 1 \leq X \leq 10^9
- 1 \leq x_i \leq 10^9
- x_i はすべて異なる
- x_1, x_2, ..., x_N \neq X
入力
入力は以下の形式で標準入力から与えられる。
N X x_1 x_2 ... x_N
出力
全ての都市を 1 度以上訪れることのできる D の最大値を出力せよ。
入力例 1
3 3 1 7 11
出力例 1
2
D = 2 と設定すれば次のように移動を行うことですべての都市を訪れることができ、これが最大です。
- 移動 2 を行い、座標 1 に移動する
- 移動 1 を行い、座標 3 に移動する
- 移動 1 を行い、座標 5 に移動する
- 移動 1 を行い、座標 7 に移動する
- 移動 1 を行い、座標 9 に移動する
- 移動 1 を行い、座標 11 に移動する
入力例 2
3 81 33 105 57
出力例 2
24
入力例 3
1 1 1000000000
出力例 3
999999999
Score : 300 points
Problem Statement
There are N cities on a number line. The i-th city is located at coordinate x_i.
Your objective is to visit all these cities at least once.
In order to do so, you will first set a positive integer D.
Then, you will depart from coordinate X and perform Move 1 and Move 2 below, as many times as you like:
- Move 1: travel from coordinate y to coordinate y + D.
- Move 2: travel from coordinate y to coordinate y - D.
Find the maximum value of D that enables you to visit all the cities.
Here, to visit a city is to travel to the coordinate where that city is located.
Constraints
- All values in input are integers.
- 1 \leq N \leq 10^5
- 1 \leq X \leq 10^9
- 1 \leq x_i \leq 10^9
- x_i are all different.
- x_1, x_2, ..., x_N \neq X
Input
Input is given from Standard Input in the following format:
N X x_1 x_2 ... x_N
Output
Print the maximum value of D that enables you to visit all the cities.
Sample Input 1
3 3 1 7 11
Sample Output 1
2
Setting D = 2 enables you to visit all the cities as follows, and this is the maximum value of such D.
- Perform Move 2 to travel to coordinate 1.
- Perform Move 1 to travel to coordinate 3.
- Perform Move 1 to travel to coordinate 5.
- Perform Move 1 to travel to coordinate 7.
- Perform Move 1 to travel to coordinate 9.
- Perform Move 1 to travel to coordinate 11.
Sample Input 2
3 81 33 105 57
Sample Output 2
24
Sample Input 3
1 1 1000000000
Sample Output 3
999999999