题目:新家到各个邻居家的距离和最短。(新家位置为其领居家的中位数)
世界聞名的黑社會老大Vito Deadstone要搬到紐約來了。在那裡他有一個大家族,並且他們都住在Lamafia大道上。因為Vito時常要拜訪所有的親戚,他想要找一間離他們最近的房子,也就是說他希望從他的家到所有的親戚的家的距離的和為最小。
他恐嚇你寫一個程式來幫助幫助他解決這個問題。
Input
輸入的第一列有一個整數代表以下有多少組測試資料。
每組測試資料一列,第一個整數 r(0 < r < 500),代表他親戚的數目。接下來的r個整數s1,s2,......sr為這些親戚房子的門牌號碼(0 < si <30000)。注意:有些親戚的門牌號碼會相同。
Output
對每一組測試資料,輸出從他的新家到所有的親戚的家的距離的和為最小為多少。2個門牌號碼si、sj的距離為si-sj的絕對值。
Sample Input
3 2 2 4 3 2 4 6 4 2 1 999 5
Sample Output
2 4 1001
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; int main() { int test; scanf("%d",&test); while(test--) { int n, num[501]={0}, i, j; scanf("%d",&n); for(i=0; i<n; i++) scanf("%d",&num[i]); sort(num, num+n); //升序排列 int sum=0; for(i=0; i<n/2; i++) { sum+=abs(num[i]-num[n-i-1]); } printf("%d\n",sum); } }