input: Write a function to improve the given Python program's time complexity for finding the maximum sum of any two distinct elements in the array. The function should return the maximum sum.
  
  ### Input:
  def find_max_sum(arr):
      max_sum = 0
      left = 0
      right = len(arr) - 1
      while left < right:
          if arr[left] + arr[right] > max_sum:
              max_sum = arr[left] + arr[right]
          if arr[left] > arr[right]:
              right -= 1
          else:
              left += 1
      return max_sum
  
  ### Output:
  def find_max_sum(arr):
      max_sum = 0
      left = 0
      right = len(arr) - 1
      while left < right:
          if arr[left] + arr[right] > max_sum:
              max_sum = arr[left] + arr[right]
          if arr[left] > arr[right]:
              right -= 1
          else:
              left += 1
      return max_sum
  
  assert find_max_sum([1, 2, 3, 4, 5])==9
  assert find_max_sum([10, 20, 30, 40])==70
  assert find_max_sum([5, 15, 10])==25
  assert find_max_sum([1, 1, 1, 1])==2
  assert find_max_sum([])==0
output: def find_max_sum(arr):
      if len(arr) < 2:
          return 0
      first_max = max(arr[0], arr[1])
      second_max = min(arr[0], arr[1])
      for num in arr[2:]:
          if num > first_max:
              second_max = first_max
              first_max = num
          elif num > second_max:
              second_max = num
      return first_max + second_max