#AT1271. C - Skip

C - Skip

C - 跳跃

得分: 300 分

问题描述

一条数轴上有 $N$ 个城市。第 $i$ 个城市位于坐标 $x_i$。

你的目标是至少访问每个城市一次。

为了达到目标,你首先需要设定一个正整数 $D$。

然后,你将从坐标 $X$ 出发,并执行以下两种移动 $1$ 和 $2$,可以执行任意多次:

  • 移动 $1$:从坐标 $y$ 移动到坐标 $y + D$。
  • 移动 $2$:从坐标 $y$ 移动到坐标 $y - D$。

找出能够让你访问所有城市的最大 $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$

输入

从标准输入中以如下格式给出:

NN XX

x1x_1 x2x_2 ...... xNx_N

输出

输出能够让你访问所有城市的最大 $D$ 的值。


3 3
1 7 11
2

选取 $D = 2$,它使你能够访问所有城市,具体如下,该 $D$ 的取值为最大值。

  • 执行移动 $2$ 到达坐标 $1$。
  • 执行移动 $1$ 到达坐标 $3$。
  • 执行移动 $1$ 到达坐标 $5$。
  • 执行移动 $1$ 到达坐标 $7$。
  • 执行移动 $1$ 到达坐标 $9$。
  • 执行移动 $1$ 到达坐标 $11$。

3 81
33 105 57
24

1 1
1000000000
999999999