"""simple docstring"""
def 		__a  (      _SCREAMING_SNAKE_CASE  )      ->bool:
  if not isinstance(_SCREAMING_SNAKE_CASE						,	_SCREAMING_SNAKE_CASE  ):
    raise ValueError('Input series is not valid, valid series - [2, 4, 8]'  )
  if len(_SCREAMING_SNAKE_CASE  ) == 0:
    raise ValueError('Input list must be a non empty list'  )
  if len(_SCREAMING_SNAKE_CASE  ) == 1:
    return True
  try:
    a__:	str     				=      series[1] / series[0]
    for index in range(len(_SCREAMING_SNAKE_CASE  ) - 1  ):
      if series[index + 1] / series[index] != common_ratio:
        return False
  except ZeroDivisionError:
    return False
  return True







def 		__a  (      _SCREAMING_SNAKE_CASE  )      ->float:
  if not isinstance(_SCREAMING_SNAKE_CASE						,	_SCREAMING_SNAKE_CASE  ):
    raise ValueError('Input series is not valid, valid series - [2, 4, 8]'  )
  if len(_SCREAMING_SNAKE_CASE  ) == 0:
    raise ValueError('Input list must be a non empty list'  )
  a__:	Dict     				=      1
  for value in series:
    answer *= value
  return pow(_SCREAMING_SNAKE_CASE						,	1 / len(_SCREAMING_SNAKE_CASE  )  )


if __name__ == "__main__":
 import doctest

 doctest.testmod()










def    UpperCamelCase__  (   UpperCAmelCase     )     ->		tuple[int, int]:







							"""simple docstring"""





							if len(UpperCAmelCase     ) == 1:
														return a[0], a[0]
							else:
														# split A into half.
														_a  :    Union[str, Any]			=						a[: len(UpperCAmelCase     ) // 2]
														_a  :    Optional[Any]			=						a[len(UpperCAmelCase     ) // 2 :]

														# 2 sub problems, 1/2 of original size.
														_a		,					_a  :    Union[str, Any]			=						max_difference(UpperCAmelCase     )
														_a		,					_a  :    List[Any]			=						max_difference(UpperCAmelCase     )

														# get min of first and max of second
														# linear time
														_a  :    Union[str, Any]			=						min(UpperCAmelCase     )
														_a  :    Any			=						max(UpperCAmelCase     )

														# 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()