思路

找中间点, 奇数则找这个点, 偶数则在中间随便取一个点就行, 或者端点也可以

把距离加起来就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;
}