问题描述
二维格点上有 n n n座房子,小强打算修一条平行 y y y轴的水渠,水渠无限长,现在求小强修水渠的位置,能使得这 n n n座房子到水渠的处置距离和最小,输出最小距离和。
问题分析
因为水渠是平行于 y y y轴,且长度无限,所以本题的距离和只需考虑横坐标。因此,只需计算所有房子的中间位置(横坐标),再一一计算房子到水渠的距离,即可求解。
代码示例
n = int(input())
row_list = []
for _ in range(n):
row, _ = map(int, input().split())
row_list.append(row)
row_list.sort()
res = row_list[n // 2]
ans = 0
for i in range(n):
ans += abs(res - row_list[i])
print(ans)