#HT1020. 数列约束

数列约束

题目描述

给你一个包含 nn 个元素的数列 a1,a2,,ana_1,a_2,\ldots,a_n,你需要修改其中的一些元素,使得最终数列中的最大值和最小值相差不超过 mm

已知将一个数从 xx 修改为 yy 的代价是 (xy)2(x-y)^2,且数列中的每个数最多只能修改一次。求最小的代价和。

输入格式

输入的第一行包含两个整数 nnmm,以一个空格分隔(1n,m10001 \le n,m \le 1000)。

输入的第二行包含 nn 个整数,分别表示 a1,a2,,an(1ai1000)a_1,a_2,\ldots,a_n(1 \le a_i \le 1000),两两之间以一个空格分隔。

输出格式

输出一个整数,表示将这个数列修改到最大值和最小值相差不超过 mm 的最小总代价。

样例

5 17
20 4 1 24 21
18
10 4
10 2 1 1 6 3 3 4 5 4
18

样例解释

样例1中,将 a3a_311 修改为 44,花费 32=93^2=9;将 a4a_42424 修改为 2121,花费 393^9,此时数列变为 20,4,4,21,2120,4,4,21,21,最大值和最小值之差不超过 1717,对应的代价和为 9+9=189+9=18

样例2中,将 a1a_11010 修改为 77,花费 32=93^2=9,将 a2a_222 修改为 33,花费 12=11^2=1,将 a3a_3a4a_411 修改为 33,各花费 22=42^2=4,最大值和最小值之差不超过 44,对应的代价和为 9+1+4+4=189+1+4+4=18

数据范围

  • 对于 20%20\% 的数据,n,m,ai10n,m,a_i \le 10
  • 对于 40%40\% 的数据,n,m,ai100n,m,a_i \le 100
  • 对于 100%100\% 的数据,1n,m,ai10001 \le n,m,a_i \le 1000