

"""simple docstring"""





from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

__UpperCamelCase  :      Optional[int]							      =		typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
__UpperCamelCase  :      Any							      =		typing.Union[np.floataa, int, float]  # noqa: UP007

def   __SCREAMING_SNAKE_CASE  (      A_						,     A_ ):
	return np.sqrt(np.sum((np.asarray(A_ ) - np.asarray(A_ )) ** 2 ) )

def   __SCREAMING_SNAKE_CASE  (      A_						,     A_ ):
	return sum((va - va) ** 2 for va, va in zip(A_						,     A_ ) ) ** (1 / 2)


if __name__ == "__main__":

							def   __SCREAMING_SNAKE_CASE  (      ):
								from timeit import timeit

								print('''Without Numpy''' )
								print(
								    timeit(
								        '''euclidean_distance_no_np([1, 2, 3], [4, 5, 6])'''						,     number=1_00_00						,     globals=globals()						,     ) )
								print('''With Numpy''' )
								print(
								    timeit(
								        '''euclidean_distance([1, 2, 3], [4, 5, 6])'''						,     number=1_00_00						,     globals=globals()						,     ) )





							benchmark()









'''simple docstring'''




from itertools import count



def       __lowerCamelCase  (					_lowercase = 5_0		)      ->			int:
							UpperCAmelCase     :		Any							     =		[1] * min_block_length

							for n in count(_lowercase		):
														fill_count_functions.append(1		)

														for block_length in range(_lowercase	,				n + 1		):
																					for block_start in range(n - block_length		):
																												fill_count_functions[n] += fill_count_functions[
																												    n - block_start - block_length - 1
																												]

																					fill_count_functions[n] += 1

														if fill_count_functions[n] > 1_0_0_0_0_0_0:
																					break

							return n


if __name__ == "__main__":
							print(F'''{solution() = }''')

