http://acm.hdu.edu.cn/showproblem.php?pid=2083
当朋友数为奇数时,设在Xi出发,距离为D,若从Xi左边一格Xj出发,每次往左走要比从Xi往左走短|Xi - Xj|,而向右走则每次多走|Xi - Xj|。
不难理解当Xi处在最中间,走的路最短
#include <iostream>
#include <algorithm>#include <cstring>
#include <cmath>
using namespace std;
int main(void)
{
ios::sync_with_stdio(false);
int T, n, arr[505];
cin >> T;
while (T--)
{
cin >> n;
for (int i = 0; i != n; ++i)
cin >> arr[i];
sort(arr, arr + n);
int middle = n / 2;
int ans = 0;
for (int i = 0; i != n; ++i)
ans += abs(arr[i] - arr[middle]);
cout << ans << endl;
}
}