"""simple docstring"""






lowerCAmelCase__  :  Dict						     =	tuple[float, float, float]
lowerCAmelCase__  :  Dict						     =	tuple[float, float, float]



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				UpperCAmelCase__             =							end_pointa[0] - end_pointa[0]
				UpperCAmelCase__             =							end_pointa[1] - end_pointa[1]
				UpperCAmelCase__             =							end_pointa[2] - end_pointa[2]
				return (x, y, z)



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				UpperCAmelCase__             =							ab[1] * ac[2] - ab[2] * ac[1]  # *i
				UpperCAmelCase__             =							(ab[0] * ac[2] - ab[2] * ac[0]) * -1  # *j
				UpperCAmelCase__             =							ab[0] * ac[1] - ab[1] * ac[0]  # *k
				return (x, y, z)



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				return tuple(round(lowerCamelCase					,			lowerCamelCase       ) for x in vector       ) == (0, 0, 0)







def   a_						(					lowerCamelCase					,			lowerCamelCase					,			lowerCamelCase					,			lowerCamelCase = 1_0       ):
				UpperCAmelCase__             =							create_vector(lowerCamelCase					,			lowerCamelCase       )
				UpperCAmelCase__             =							create_vector(lowerCamelCase					,			lowerCamelCase       )
				return is_zero_vector(get_ad_vectors_cross(lowerCamelCase					,			lowerCamelCase       )					,			lowerCamelCase       )




"""simple docstring"""






import functools



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				UpperCAmelCase__             =							len(lowerCamelCase       )
				UpperCAmelCase__             =							len(lowerCamelCase       )

				@functools.cache
				def min_distance(lowerCamelCase					,			lowerCamelCase       ) -> int:
								# if first word index is overflow - delete all from the second word
								if indexa >= len_worda:
												return len_worda - indexa
								# if second word index is overflow - delete all from the first word
								if indexa >= len_worda:
												return len_worda - indexa
								UpperCAmelCase__             =							int(worda[indexa] != worda[indexa]       )  # current letters not identical
								return min(
								    1 + min_distance(indexa + 1					,			lowerCamelCase       )					,			1 + min_distance(lowerCamelCase					,			indexa + 1       )					,			diff + min_distance(indexa + 1					,			indexa + 1       )					,			)

				return min_distance(0					,			0       )


if __name__ == "__main__":
						import doctest

						doctest.testmod()



