在 Python 中找到将相同数量的人发送到两个不同城市的最低成本的程序

假设我们有一个名为成本的列表。cost[i] 有 [c1, c2] 表示对于人 i,到达城市 0 的成本为 c1,到达城市 1 的成本为 c2。我们希望前往城市 0 的人数与前往城市 1 的人数相同,我们必须找到所需的最低成本。

因此,如果输入类似于成本 = [[2, 6],[10, 3],[4, 9],[5, 8]],那么输出将是 17,因为人 0 和 2 将去城市0和人1和3到城市1,所以对于城市0,成本是2+4=6,对于城市1,成本是8+3=11,总共是17。

示例

让我们看看以下实现以获得更好的理解 -

def solve(costs):
   s = 0
   a = []
   for x, y in costs:
      s += x
      a += (y - x,)
   a.sort()
   for i in range(len(a) // 2):
      s += a[i]
   return s

costs = [[2, 6],[10, 3],[4, 9],[5, 8]]
print(solve(costs))

输入

[[2, 6],[10, 3],[4, 9],[5, 8]]
输出结果
17

猜你喜欢