dp啊
#include<iostream>
using namespace std;
#include<cstdio>
#include<cstring>
#include<algorithm>
long long dp[2005][2005],a[2005];
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)==2)
{
int i,j;
for(i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);//¼Çס£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡
for(i=0;i<=n;i++)
for(j=0;j<=k;j++)
dp[i][j]=0;
for(i=2;i<=n;i++)
{
for(j=1;j*2<=i;j++)
{
if(j*2==i)
{
dp[i][j]=dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]);
}
else
{
dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]));
}
}
}
//cout<<endl;
printf("%lld\n",dp[n][k]);
}
return 0;
}