题目描述
给你一个包含 n 个元素的数列 a1,a2,…,an,你需要修改其中的一些元素,使得最终数列中的最大值和最小值相差不超过 m。
已知将一个数从 x 修改为 y 的代价是 (x−y)2,且数列中的每个数最多只能修改一次。求最小的代价和。
输入格式
输入的第一行包含两个整数 n 和 m,以一个空格分隔(1≤n,m≤1000)。
输入的第二行包含 n 个整数,分别表示 a1,a2,…,an(1≤ai≤1000),两两之间以一个空格分隔。
输出格式
输出一个整数,表示将这个数列修改到最大值和最小值相差不超过 m 的最小总代价。
样例
5 17
20 4 1 24 21
18
10 4
10 2 1 1 6 3 3 4 5 4
18
样例解释
样例1中,将 a3 从 1 修改为 4,花费 32=9;将 a4 由 24 修改为 21,花费 39,此时数列变为 20,4,4,21,21,最大值和最小值之差不超过 17,对应的代价和为 9+9=18。
样例2中,将 a1 从 10 修改为 7,花费 32=9,将 a2 从 2 修改为 3,花费 12=1,将 a3 及 a4 从 1 修改为 3,各花费 22=4,最大值和最小值之差不超过 4,对应的代价和为 9+1+4+4=18。
数据范围
- 对于 20% 的数据,n,m,ai≤10;
- 对于 40% 的数据,n,m,ai≤100;
- 对于 100% 的数据,1≤n,m,ai≤1000。