


def 	_lowerCAmelCase       (    _lowerCAmelCase      ,	_lowerCAmelCase )						->	Tuple:


						'''simple docstring'''






						__snake_case				=		[0 for i in range(r + 1 )]
						# nc0 = 1
						__snake_case				=		1
						for i in range(1      ,	n + 1 ):
												# to compute current row from previous row.
												__snake_case				=		min(_lowerCAmelCase      ,	_lowerCAmelCase )
												while j > 0:
																		c[j] += c[j - 1]
																		j -= 1
						return c[r]


print(binomial_coefficient(n=10, r=5))









from __future__ import annotations





def 	_lowerCAmelCase       (    _lowerCAmelCase )						->	list:


						'''simple docstring'''






						if len(_lowerCAmelCase ) == 0:
												return []
						__snake_case		,					__snake_case				=		min(_lowerCAmelCase ), max(_lowerCAmelCase )
						__snake_case				=		int(max_value - min_value ) + 1
						__snake_case				=		[[] for _ in range(_lowerCAmelCase )]

						for i in my_list:
												buckets[int(i - min_value )].append(_lowerCAmelCase )

						return [v for bucket in buckets for v in sorted(_lowerCAmelCase )]


if __name__ == "__main__":
	from doctest import testmod

	testmod()
	assert bucket_sort([4, 5, 3, 2, 1]) == [1, 2, 3, 4, 5]
	assert bucket_sort([0, 1, -10, 15, 2, -2]) == [-10, -2, 0, 1, 2, 15]





