input: Write a function to divide a given list of numbers into two equal parts such that the difference between the sum of the two parts is minimum. If the list cannot be divided into two equal parts, return two parts with the smallest possible difference in sums.
  def divide_in_two_equal_parts(lst):
      target = sum(lst) // 2
      part1 = []
      part2 = []
      left_sum = 0
      right_sum = 0
      
      for num in lst:
          if left_sum <= right_sum:
              left_sum += num
              part1.append(num)
          else:
              right_sum += num
              part2.append(num)
           
      return part1, part2
  
  assert divide_in_two_equal_parts([2, 3, 4, 5, 6, 7]) == ([2, 3, 4], [5, 6, 7])
  assert divide_in_two_equal_parts([1, 2, 3, 4, 5, 6, 7, 8]) == ([1, 2, 3, 4], [5, 6, 7, 8])
  assert divide_in_two_equal_parts([10, 20, 30, 40, 50, 60]) == ([10, 20, 30], [40, 50, 60])
  assert divide_in_two_equal_parts([1, 1, 1, 1, 1, 1, 1, 1]) == ([1, 1, 1, 1], [1, 1, 1, 1])
  assert divide_in_two_equal_parts([]) == ([], [])
output: def divide_in_two_equal_parts(lst):
      lst.sort(reverse=True)
      part1 = []
      part2 = []
      sum1 = 0
      sum2 = 0
      
      for num in lst:
          if sum1 <= sum2:
              part1.append(num)
              sum1 += num
          else:
              part2.append(num)
              sum2 += num
      
      return part1, part2