#include"stdio.h" #include"stdlib.h" #include"string.h" int a[2005],dp[2005][1005]; int cmp(const void *a,const void *b) { return *(int*)a-*(int*)b; } int min(int a,int b) { return a<b?a:b; } int main( ) { int n,k,i,j; while(~scanf("%d%d",&n,&k)) { for(i=1;i<=n;i++) scanf("%d",&a[i]); qsort(a+1,n,sizeof(int),cmp); for(i=0;i<=n;i++) for(j=1;2*j<=n;j++) dp[i][j]=0xfffffff; for(i=0;i<=n;i++) dp[i][0]=0; for(i=2;i<=n;i++) for(j=1;2*j<=i;j++) dp[i][j]=min(dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]),dp[i-1][j]); printf("%d\n",dp[n][k]); } return 0; }