题目描述
在一条数轴上有 �N 家商店,它们的坐标分别为 �1A1∼��AN。
现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。
为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。
首先我们需要知道绝对值不等式 为使选址到各个商铺的距离最短 选择a[n/2]作为地址,对数组中的每个元素依次相减求绝对值在求和 就可得出最短距离;
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
const int N = n;
int arr[N];
for(int i = 0;i<n;i++)
{
cin>>arr[i];
}
sort(arr,arr+n);
for(int i = 0;i<n;i++)
{
sum+=abs(arr[i]-arr[n/2]);
}
cout<<sum;
}