code: 
  
  
  
  def 			__lowercase     (				a__     )       ->				tuple[int, int]:
  							# base case
  							if len(a__     ) == 1:
  														return a[0], a[0]
  							else:
  														# split A into half.
  														__SCREAMING_SNAKE_CASE								=      a[: len(a__     ) // 2]
  														__SCREAMING_SNAKE_CASE								=      a[len(a__     ) // 2 :]
  
  														# 2 sub problems, 1/2 of original size.
  														__SCREAMING_SNAKE_CASE							, __SCREAMING_SNAKE_CASE								=      max_difference(a__     )
  														__SCREAMING_SNAKE_CASE							, __SCREAMING_SNAKE_CASE								=      max_difference(a__     )
  
  														# get min of first and max of second
  														# linear time
  														__SCREAMING_SNAKE_CASE								=      min(a__     )
  														__SCREAMING_SNAKE_CASE								=      max(a__     )
  
  														# 3 cases, either (small1, big1),
  														# (min_first, max_second), (small2, big2)
  														# constant comparisons
  														if biga - smalla > max_second - min_first and biga - smalla > biga - smalla:
  																					return smalla, biga
  														elif biga - smalla > max_second - min_first:
  																					return smalla, biga
  														else:
  																					return min_first, max_second
  
  
  if __name__ == "__main__":
  			import doctest
  
  			doctest.testmod()
  
  
  
  
  
  
  
style_context: 
  
  
  
  def 			__lowercase     (				a__     )       ->				int:
  							return int(a__     ) if x - int(a__     ) <= 0 else int(a__     ) + 1
  
  
  if __name__ == "__main__":
  			import doctest
  
  			doctest.testmod()
  
  
  
  
  
  
  