先将各点位距离原点的距离的大小按从大到小排序,在现实中,我们应该都知道将最中间的商家作为货仓地址距离其他的商家最近,故直接找出最中间的商家,如商家数为偶则选取最中间两商家的中间位置作为地址
该题主要考察实际问题的解决,与代码关系不大
AC代码如下
#include <iostream>
#include <algorithm>
using namespace std;
int n, sum;
int a[100005];
long long ans = 0;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a, a + n);
sum = n / 2;
for (int i = 0; i < n; i++)
{
ans += abs(a[sum] - a[i]);
}
cout << ans;
return 0;
}