#P1515. 万神牛的筷子(chopsticks)

万神牛的筷子(chopsticks)

【问题描述】

中国人吃饭喜欢用筷子。万神牛与常人不同,他的一双筷子有3只,一双短筷子加上一根比较长的(一般用来穿香肠之类的食物)。两只较短的筷子的长度应该尽可能的接近,但是最长的那根长度是无所谓的。如果一双筷子的长度分别是A,B,C(A<=B<=C),则用sqr(A-B)的值表示这双筷子的质量,这个值越小,这双筷子的质量越高。

万神牛请MM吃饭,并准备为每人准备一双这种特殊的筷子。万神牛有N(N<=5000)只筷子,他希望找到一种办法搭配好M双筷子,使得这些筷子的质量值和最小。

【输入格式】

第一行两个正整数M,N,表示有N只筷子,需要搭配M双。

第二行到第N+1行每行一个整数,表示每只筷子的长度,按长度从小到大给出。

【输出格式】

一行,一个整数,表示最小的质量值和。

【输入样例】:(chopsticks.in)

2 6
1
3
4
6
8
9

【输出样例】:(chopsticks.out)

8

【数据范围】

70%的数据,N<=20,M<=5

100%的数据,N<=1000,M<=200