input: 
  def divide_in_two_equal_parts(lst):
      """
      Divide a given list of numbers into two equal parts such that the difference between
      the sum of the two parts is minimum.
      
      >>> divide_in_two_equal_parts([2, 3, 4, 5, 6, 7])
      ([3, 4, 7], [2, 5, 6])
      """
      
      if not lst:
          return [], []
      
      half_sum = sum(lst) // 2
      
      dp = [False] * (half_sum + 1)
      dp[0] = True
      
      for num in lst:
          for i in range(half_sum, num - 1, -1):
              if dp[i - num]:
                  dp[i] = True
      
      for i in range(half_sum, -1, -1):
          if dp[i]:
              target = i
              break
      
      part1 = []
      part2 = lst[:]
      
      while target > 0:
          for num in part2:
              if target - num >= 0 and (target - num == 0 or dp[target - num]):
                  part1.append(num)
                  part2.remove(num)
                  target -= num
                  break
      
      return part1, part2
  
output:     if not lst:
          return [], []
      
      half_sum = sum(lst) // 2
      
      dp = [False] * (half_sum + 1)
      dp[0] = True
      
      for num in lst:
          for i in range(half_sum, num - 1, -1):
              if dp[i - num]:
                  dp[i] = True
      
      for i in range(half_sum, -1, -1):
          if dp[i]:
              target = i
              break
      
      part1 = []
      part2 = lst[:]
      
      while target > 0:
          for num in part2:
              if target - num >= 0 and (target - num == 0 or dp[target - num]):
                  part1.append(num)
                  part2.remove(num)
                  target -= num
                  break
      
      return part1, part2