筷子
Description
\(A\)先生有很多双筷子。确切的说应该是很多根,因为筷子的长度不一,很难判断出哪两根是一双的。这天,\(A\)先生家里来了\(K\)个客人,\(A\)先生留下他们吃晚饭。加上\(A\)先生,\(A\)夫人和他们的孩子小\(A\),共\(K+3\)个人。
现,每人需要用一双筷子。\(A\)先生只好清理了一下筷子,共\(N\)根,长度依次为:
\[T_1,T_2,T_3,\dots,T_N\]
现在他想用这些筷子组合成\(K+3\)双,使每双的筷子长度差的平方和最小。(怎么不是和最小??这要去问\(A\)先生了,呵呵)
Format
Input
输入文件共有两行。
第一行为两个用空格隔开的整数,表示\(N\),\(K\);
第二行共有\(N\)个用空格隔开的整数,为\(T_i\).每个整数为\(1-50\)之间的数。
Output
输出文件仅一行。
如果凑不齐\(K+3\)双,输出\(-1\),否则输出长度差平方和的最小值。
Sample 1
Input
10 1
1 10 2 3 3 4 3 6 1 20
Output
5
Limitation&Appointment
对于\(100\%\)的数据,\(1\le N\le 100\), \(0\lt K\lt 50\)
共\(10\)个测试点,对于每一个测试点,时间限制为\(1000ms\),空间限制为\(128MiB\),分值为\(10\)分。