4012 - 弹跳游戏

题目描述

在一款弹跳游戏中,游戏主人公可以在屏幕上按照固定的距离 L 在游戏屏幕上向左或者向右跳跃。

游戏屏幕可以简化为一个数轴,如果游戏主人公位于位置 X,则其向左跳跃 1 次可以到达 X-L 的位置,向右跳跃 1 次可以到达 X+L 的位置。

游戏中共有 N 枚金币,第 i 枚金币放置在位置 P_i 处,游戏主人公主只要跳跃到存在金币的位置,就能取走该位置的金币,该位置的金币被取走后,不会重新产生新的金币。

游戏主人公从最初位置 X 出发,可以向左或向右进行任意多次跳跃,跳跃距离固定为 L

请你编程计算出:如果游戏主人公想要取走所有的金币,那么他的固定跳跃距离 L最大值是多少?

输入

第一行包含两个整数 N, X,分别表示金币的数量、游戏主人公的初始位置。

第二行包含 N 个整数 P_1, P_2, \dots, P_N,表示每个金币的位置。

输出

输出一个整数,表示在能取走所有金币的前提下,最大的跳跃距离 L。显而易见的是,L=1 的情况下,一定能取走所有位置的金币。

样例

输入

3 3
1 7 11

输出

2

输入

3 81
33 105 57

输出

24

输入

1 1
1000000000

输出

999999999
说明

样例 1 说明

设置跳跃距离为 L=2,可以实现目标。

  • 从位置 3 出发,向左跳跃 1 次,可以到达位置 1。
  • 从位置 1 出发,向右跳跃 3 次,可以到达位置 7。
  • 从位置 7 出发,向右跳跃 2 次,可以到达位置 11。

数据范围

对于 100\% 的数据,满足 1 \leq N \leq 10^51 \leq X \leq 10^91 \leq P_i \leq 10^9

且保证,所有的 P_i 互不相同,X \neq P_i

测试点编号特殊性质
10\% 的数据N=1
另外 30\% 的数据X,P_i \le 1000
标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 入门


上一题 下一题