input: Write a function that takes a list of numbers and divides it into two such that the absolute difference between the sums of the two resulting parts is minimized. Return the two parts as two separate lists.
  
  def divide_in_two_with_min_diff(lst):
      if len(lst) < 2:
          return lst, []
      
      target = sum(lst) // 2
      part1 = []
      part2 = []
      left_sum = 0
      right_sum = 0
      
      for num in sorted(lst, reverse=True):
          if left_sum + num <= target:
              left_sum += num
              part1.append(num)
          else:
              right_sum += num
              part2.append(num)
      
      return part1, part2
  
  assert divide_in_two_with_min_diff([2, 3, 4, 5, 6, 7])==([6, 4, 3], [7, 5, 2])
  assert divide_in_two_with_min_diff([1, 2, 3, 4, 5])==([5, 2], [4, 3, 1])
  assert divide_in_two_with_min_diff([1, 1, 1, 1, 1, 1])==([1, 1, 1], [1, 1, 1])
  assert divide_in_two_with_min_diff([])==([], [])
  assert divide_in_two_with_min_diff([4, 1, 3, 2])==([4, 1], [3, 2])
output: def divide_in_two_with_min_diff(lst):
      if len(lst) < 2:
          return lst, []
      
      target = sum(lst) // 2
      part1 = []
      part2 = []
      left_sum = 0
      right_sum = 0
      
      for num in sorted(lst, reverse=True):
          if left_sum + num <= target:
              left_sum += num
              part1.append(num)
          else:
              right_sum += num
              part2.append(num)
      
      return part1, part2