
def      lowerCAmelCase	(						lowerCAmelCase_	)->	Any:





				if len(A_	) == 1:
								return a[0], a[0]
				else:
								# split A into half.
								lowerCAmelCase_	: Tuple      			=			a[: len(A_	) // 2]
								lowerCAmelCase_	: List[Any]      			=			a[len(A_	) // 2 :]

								# 2 sub problems, 1/2 of original size.
								lowerCAmelCase_			,					lowerCAmelCase_	: Optional[int]      			=			max_difference(A_	)
								lowerCAmelCase_			,					lowerCAmelCase_	: Optional[int]      			=			max_difference(A_	)

								# get min of first and max of second
								# linear time
								lowerCAmelCase_	: str      			=			min(A_	)
								lowerCAmelCase_	: Any      			=			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()



import math







class 			snake_case__:







						'''simple docstring'''




						def __init__(			self				,  __lowercase				,  __lowercase				,  __lowercase							)   ->      Tuple:
										lowerCAmelCase_	: List[str]      			=			x
										lowerCAmelCase_	: Dict      			=			y
										lowerCAmelCase_	: List[Any]      			=			z




						def __repr__(			self							)   ->      str:
										return f"""Point({self.x}, {self.y}, {self.z})"""






def      lowerCAmelCase	(						lowerCAmelCase_	,				lowerCAmelCase_	)->	float:
				return math.sqrt(abs((b.x - a.x) ** 2 + (b.y - a.y) ** 2 + (b.z - a.z) ** 2	)	)


if __name__ == "__main__":
						import doctest

						doctest.testmod()