简易版之最短距离
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2083
代码如下:
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
int m, n, a[501], i, mid, sum;
scanf("%d", &m);
while (m--)
{
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, a+n);
mid = a[n/2]; //排序之后取中间值就是最优解
sum = 0;
for (i = 0; i < n; i++)
sum += abs(a[i] - mid);
printf("%d\n", sum);
}
return 0;
}