#abc450d. Minimize Range

Minimize Range

【题目描述】

给定一个长度为 NN 的正整数序列 AA 和一个正整数 KK
你可以对序列 AA 执行以下操作任意多次(包括零次):

  • 选择一个整数 ii1iN1 \le i \le N),并将 AiA_i 增加 KK

max(A)min(A)\max(A) - \min(A) 可能取得的最小值。

【输入格式】

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

N K
A_1 A_2 … A_N

【输出格式】

输出一行,表示 max(A)min(A)\max(A) - \min(A) 可能取得的最小值。

【约束条件】

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1K1091 \le K \le 10^9
  • 1Ai1091 \le A_i \le 10^9
  • 所有输入值均为整数

【样例输入 1】

3 10
3 21 9

【样例输出 1】

4

【样例 1 解释】

  • 首先,选择 i=1i=1,序列变为 (13,21,9)(13, 21, 9)
  • 然后,选择 i=3i=3,序列变为 (13,21,19)(13, 21, 19)
  • 接着,选择 i=1i=1,序列变为 (23,21,19)(23, 21, 19)
  • 此时,max(A)min(A)=2319=4\max(A) - \min(A) = 23 - 19 = 4
  • 无法使该值小于等于 3,因此答案是 4。

【样例输入 2】

5 6
4 100 5 10 450

【样例输出 2】

2