货仓选址

匿名 (未验证) 提交于 2019-12-02 23:03:14

题目描述
在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N]。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

输入
第一行一个整数N,第二行N个整数A[1]~A[N]。

输出
一个整数,表示距离之和的最小值。

样例输入
4
6 2 9 1
样例输出
12

#include <stdio.h> #include <math.h> #include<algorithm> using namespace std; long long a[1000000]; int main() { 	long long n,m; 	long long sum=0; 	long long i; 	scanf("%lld",&n); 	for(i=1;i<=n;i++) 		scanf("%lld",&a[i]); 	sort(a+1,a+n+1);   //排序  	if(n%2==1)			//注意中位数的奇偶  		m=n/2+1; 	else m=(n+1)/2; //  	for(i=1;i<=n;i++) 		if(i!=m) sum+=abs(a[m]-a[i]);   	printf("%lld\n",sum); 	return 0;	 }  //这题主要运用中位数的作法
转载请标明出处:货仓选址
文章来源: 货仓选址
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!