#include<iostream> #include<algorithm> using namespace std; const int M=2001; const int N=1001; int v[M],dp[M][N]; int main(){ int n,k; while(cin>>n>>k){ //输入一组数据 for(int i=1;i<=n;i++) cin>>v[i]; //对数据进行排序 sort(v,v+n+1); memset(dp,0,sizeof(dp)); for(int i=2;i<=n;++i) for(int j=1;j<=k;++j){ if(i==j*2) dp[i][j]=dp[i-2][j-1]+(v[i]-v[i-1])*(v[i]-v[i-1]); else if(i>j*2) dp[i][j]=min(dp[i-2][j-1]+(v[i]-v[i-1])*(v[i]-v[i-1]),dp[i-1][j]); } cout<<dp[n][k]<<endl; } return 0; }