Uva 10041 Vito’s family
內容
世界聞名的黑社會老大Vito Deadstone要搬到紐約來了。在那裡他有一個大家族,並且他們都住在Lamafia大道上。因為Vito時常要拜訪所有的親戚,他想要找一間離他們最近的房子,也就是說他希望從他的家到所有的親戚的家的距離的和為最小。
他恐嚇你寫一個程式來幫助幫助他解決這個問題。
輸入說明
輸入的第一列有一個整數代表以下有多少組測試資料。
每組測試資料一列,第一個整數 r(0 < r < 500),代表他親戚的數目。接下來的r個整數s1,s2,......sr為這些親戚房子的門牌號碼(0 < si <30000)。注意:有些親戚的門牌號碼會相同。
輸出說明
對每一組測試資料,輸出從他的新家到所有的親戚的家的距離的和為最小為多少。2個門牌號碼si、sj的距離為si-sj的絕對值。
def solve2(n, nums):
nums.sort() # 將 nums 列表按照升序進行排序
mid = nums[n//2] # 計算中間元素的索引並賦值給 mid
ans = 0 # 初始化答案變數 ans 為 0
for i in nums: # 遍歷 nums 列表中的每個元素 i
ans += abs(i - mid) # 將 i 與 mid 的絕對差值加到 ans 中
return ans # 返回最終答案 ans
T = int(input()) #寫有多少要測試的資料
for t in range(T):
n = list(map(int, input().split())) # 讀取一行輸入,將其轉換為整數列表,第一個元素為 n,其餘元素為 nums
print(solve2(n[0], n[1:])) # 呼叫 solve2 函數並印出結果