题意
X轴上有N(2 <= N <= 10000)个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。
解题思路
要使得距离之和最小,那么就是取最中间的那个数作为中心点。
参考代码
#include <iostream>
#include <algorithm>
using namespace std;
#define MAXN 10000+5
typedef long long ll;
int a[MAXN];
int main(){
int n,x,y,tmp;
while (
cin>>n){
for (
int i=
0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
int k=a[n/
2];
ll ans=
0;
for (
int i=
0;i<n;i++)
ans+=
abs(k-a[i]);
cout<<ans<<endl;
}
return 0;
}