题目
题目描述
在一条数轴上有
�
N 家商店,它们的坐标分别为
�
1
A
1
∼
�
�
A
N
。
现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。
为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。
输入格式
第一行输入整数
�
N。
第二行
�
N个整数
�
1
A
1
∼
�
�
A
N
。
输出格式
输出一个整数,表示距离之和的最小值。
样例
输入数据 1
4
6 2 9 1
输出数据 1
12
数据范围
1
≤
�
≤
100000
1≤N≤100000
0
≤
�
�
≤
40000
0≤A
i
≤40000
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];//输入店的坐标
sort(a, a + n);//通过店的坐标进行排序
int res = 0;//仓库的位置就是店的中值的位置
for (int i = 0; i < n; i++) res += abs(a[i] - a[n / 2]);//通过计算每一个店到中值的距离相加
cout << res << endl;
return 0;
}