100 atcoder#ABC109C. [ABC109C] Skip

[ABC109C] Skip

配点 : 300300

問題文

数直線上に NN 個の都市があり、ii 番目の都市は座標 xix_i にあります。

あなたの目的は、これら全ての都市を 11 度以上訪れることです。

あなたは、はじめに正整数 DD を設定します。

その後、あなたは座標 XX から出発し、以下の移動 11、移動 22 を好きなだけ行います。

  • 移動 11: 座標 yy から座標 y+Dy + D に移動する
  • 移動 22: 座標 yy から座標 yDy - D に移動する

全ての都市を 11 度以上訪れることのできる DD の最大値を求めてください。

ここで、都市を訪れるとは、その都市のある座標に移動することです。

制約

  • 入力はすべて整数である
  • 1N1051 \leq N \leq 10^5
  • 1X1091 \leq X \leq 10^9
  • 1xi1091 \leq x_i \leq 10^9
  • xix_i はすべて異なる
  • x1,x2,...,xNXx_1, x_2, ..., x_N \neq X

入力

入力は以下の形式で標準入力から与えられる。

NN XX

x1x_1 x2x_2 ...... xNx_N

出力

全ての都市を 11 度以上訪れることのできる DD の最大値を出力せよ。

3 3
1 7 11
2

D=2D = 2 と設定すれば次のように移動を行うことですべての都市を訪れることができ、これが最大です。

  • 移動 22 を行い、座標 11 に移動する
  • 移動 11 を行い、座標 33 に移動する
  • 移動 11 を行い、座標 55 に移動する
  • 移動 11 を行い、座標 77 に移動する
  • 移動 11 を行い、座標 99 に移動する
  • 移動 11 を行い、座標 1111 に移動する
3 81
33 105 57
24
1 1
1000000000
999999999