Problem E: 郊游
Description
小明有很多个朋友,他们在家分别分布在 x 轴上的不同位置。有一天,他们想一起出去郊游,首先他们需要定一个地点集合,使得这个地点让他们从各自家里到该点的距离总和最小,小明想知道这个最小的距离总和是多少。
Input
有多组测试数据。第一行是一个整数 n,代表总共有n个人,第二行是n个数字,代表这些人的家在x轴上的位置。1 <= n <= 100,0 <= xi <= 1000。最后以一个0结束输入。
Output
对于每组数据,输出一个整数,代表最小的距离总和。
Sample Input
31 2 30
Sample Output
2
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n;
int minm,b[100000],a[100000];
while(cin>>n&&n)
{
minm=0;
memset(a,0,sizeof(a));
for(int i=0; i<n; i++)
cin>>a[i];
for(int i=0; i<n; i++)
{
b[i]=0;
for(int j=0; j<n; j++)
{
if(a[i]>a[j])
b[i]+=(a[i]-a[j]);
else
b[i]+=(a[j]-a[i]);
}
}
for(int i=1; i<n; i++)
{
if(b[i]<b[minm])
minm=i;
}
cout<<b[minm]<<endl;
}
return 0;
}