#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int arr[N],n,res;
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>arr[i];
sort(arr,arr+n);
//分成整数和奇数的形式
int pos=arr[(n%2)==0?(n/2-1):(n/2)];//已经找出最好的位置
for(int i=0;i<n;i++) res=res+abs(pos-arr[i]);
cout<<res;
return 0;
}
这道题目,我好像很就直接就已经写过,好像是lc上面的题目,也是选取中位数。
其实说是贪心,但是这个贪心是比较简答的。
关于指明:可以选择(1)累加距离的平方(2)或者累计绝对值之和的形式都是可以的