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. The function should return two lists representing the two parts. If the given list is empty, the function should return two empty lists.
  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])==([1, 2, 3], [4, 5])
  assert divide_in_two_equal_parts([10, 20, 30, 40])==([10, 40], [20, 30])
  assert divide_in_two_equal_parts([1])==([1], [])
  assert divide_in_two_equal_parts([])==([], [])
output: def divide_in_two_equal_parts(nums):
      if not nums:
          return [], []
      
      nums.sort()
      half_sum = sum(nums) / 2
      part1, part2 = [], []
      sum1, sum2 = 0, 0
      
      for num in reversed(nums):
          if sum1 + num <= half_sum and len(part1) <= len(nums) // 2:
              part1.append(num)
              sum1 += num
          else:
              part2.append(num)
              sum2 += num
      
      return part1, part2