思路
找中间点, 奇数则找这个点, 偶数则在中间随便取一个点就行, 或者端点也可以
把距离加起来就ok了
这个题也是acwing 基础课的模板题
ac 代码
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n;
vector<int> loc;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
int a;
cin >> a;
loc.push_back(a);
}
sort(loc.begin(), loc.end());
int pos;
if (n % 2)
pos = loc[n / 2];
else
pos = (loc[n / 2 - 1] ) ;
long long dis = 0;
for(int i = 0 ; i<n;i++)
{
dis += abs(pos - loc[i]);
}
cout << dis;
return 0;
}