1. 程式人生 > >貨倉選址(中位數)

貨倉選址(中位數)

0501 貨倉選址 0x00「基本演算法」例題

描述

在一條數軸上有N家商店,它們的座標分別為 A[1]~A[N]。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。

輸入格式

第一行一個整數N,第二行N個整數A[1]~A[N]。

輸出格式

一個整數,表示距離之和的最小值。

樣例輸入

4
6 2 9 1

樣例輸出

12

資料範圍與約定

  • 對於100%的資料: N<=100000, A[i]<=1000000
#include<bits/stdc++.h>
using
namespace std; int n,a[200000]; int main() { scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%d",&a[i]); } sort(a+1,a+n+1); int m=(n+1)/2; long long sum=0; for(int i=1;i<=m;i++) { sum+=a[n+1-i]-a[i]; } printf("%lld",sum); }