Problem:貨倉選址
阿新 • • 發佈:2021-02-04
題目描述
在一條數軸上有 n家商店,它們的座標分別為 A1~An。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。
輸入格式
第一行輸入整數n
第二行n個整數A1~An
輸出格式
輸出一個整數,表示距離之和的最小值
資料範圍
1 ≤ n ≤ 100000,
0 ≤ Ai ≤ 40000
輸入樣例
輸出樣例
程式程式碼
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n + 1];
for(int i = 0; i < n; i ++)
cin >> a[i];
sort(a,a + n);
int sum = 0;
for(int i = 0; i < n; i ++)
sum = sum + abs(a[i] - a[n / 2]);//中位數是最優解
cout << sum;
return 0;
}
- 若有問題,歡迎交流