# Program to find minimum cost to send same number of people to two different cities in Python

PythonServer Side ProgrammingProgramming

Suppose we have a list called costs. Where costs[i] has [c1, c2] indicates that for person i it costs c1 amount to reach city 0 and costs c2 amount to reach city 1. We want the same number of people to go to city 0 as city 1, we have to find the minimum cost required.

So, if the input is like costs = [[2, 6],[10, 3],[4, 9],[5, 8]], then the output will be 17, because person 0 and 2 will go to city 0 and person 1 and 3 to city 1, so for city 0, the cost is 2+4 = 6, and for city 1, the cost is 8+3 = 11, total is 17.

To solve this, we will follow these steps −

• s := 0
• a := a new list
• for each pair (x, y) in costs, do
• s := s + x
• insert (y - x) into a at the end
• sort the list a
• for i in range 0 to floor of (size of a / 2) - 1, do
• s := s + a[i]
• return s

## Example

Let us see the following implementation to get better understanding −

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))

## Input

[[2, 6],[10, 3],[4, 9],[5, 8]]

## Output

17