俞冰轩 • 1年前
using namespace std; int main(){
int a[101],dp[101][101];
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
k+=3;
if(k*2>n){
cout<<"-1";
return 0;
}
for(int i=0;i<=n;i++){
dp[i][0]=0;
for(int j=1;j<=n;j++){
dp[i][j]=1e9;
}
}
for(int i=2;i<=n;i++){
for(int j=1;j<=n;j++)dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]));
}
cout<<dp[n][k];
}
评论: