input: Write a function to divide a given list of numbers into two parts such that the difference between the sums of the two parts is minimized. Return the two parts as a tuple of two lists.
  
  def divide_in_two_equal_parts(lst):
      if not lst:
          return [], []
      target = sum(lst) // 2
      current_sum = 0
      part1 = []
      part2 = lst[:]
      
      for num in sorted(lst, reverse=True):
          if current_sum + num <= target:
              current_sum += num
              part1.append(num)
              part2.remove(num)
      
      return part1, part2
  
  assert divide_in_two_equal_parts([2, 3, 4, 5, 6, 7]) == ([7, 5, 2], [6, 4, 3])
  assert divide_in_two_equal_parts([1, 2, 3, 4, 5, 6, 7, 8]) == ([8, 7, 1, 2], [6, 5, 4, 3])
  assert divide_in_two_equal_parts([]) == ([], [])
  assert divide_in_two_equal_parts([10]) == ([10], [])
output: def divide_in_two_equal_parts(lst):
      if not lst:
          return [], []
      target = sum(lst) // 2
      current_sum = 0
      part1 = []
      part2 = lst[:]
      
      for num in sorted(lst, reverse=True):
          if current_sum + num <= target:
              current_sum += num
              part1.append(num)
              part2.remove(num)
      
      return part1, part2