input: Write a python function to solve a linear programming problem using the given constraints and bounds.
  assert solve_lp([3, 4], [[2, 1], [1, 2]], [10, 10], [(0, None), (0, None)]) == (13.333333333333334, [3.33333333, 2.33333333])
  assert solve_lp([1, 1], [[1, 2], [4, 0]], [8, 4], [(0, None), (0, None)]) == (2.0, [0.0, 4.0])
  assert solve_lp([-1, 4], [[-3, 1], [1, 2]], [6, 4], [(0, None), (0, None)]) == (16.0, [10.0, 3.0])
output: def solve_lp(c, A, b, bounds):
      from scipy.optimize import linprog
      res = linprog(c, A_ub=A, b_ub=b, bounds=bounds, method='highs')
      return res.fun, res.x.tolist()