




def 						__A						(      __lowerCamelCase				,     __lowerCamelCase       ) ->			bool:
	a									=				len(__UpperCAmelCase       )
	a									=				[[False] * (required_sum + 1) for _ in range(arr_len + 1       )]

	# for each arr value, a sum of zero(0) can be formed by not taking any element
	# hence True/1
	for i in range(arr_len + 1       ):
		a									=				True

	# sum is not zero and set is empty then false
	for i in range(1				,     required_sum + 1       ):
		a									=				False

	for i in range(1				,     arr_len + 1       ):
		for j in range(1				,     required_sum + 1       ):
			if arr[i - 1] > j:
				a									=				subset[i - 1][j]
			if arr[i - 1] <= j:
				a									=				subset[i - 1][j] or subset[i - 1][j - arr[i - 1]]

	return subset[arr_len][required_sum]


if __name__ == "__main__":
		import doctest

		doctest.testmod()









"""simple docstring"""





from __future__ import annotations



def   a    (     __UpperCAmelCase      :    list  )    ->							list:
						if len(__UpperCAmelCase  ) == 0:
												return []
						__magic_name__,			__magic_name__:	List[str]							=       min(__UpperCAmelCase  ), max(__UpperCAmelCase  )
						__magic_name__:	Optional[int]							=       int(max_value - min_value  ) + 1
						__magic_name__:	list[list]							=       [[] for _ in range(__UpperCAmelCase  )]

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

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


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]



