






from __future__ import annotations





def 						A_					(						lowercase_	,  lowercase_			)				->list[int]:







 """simple docstring"""

 SCREAMING_SNAKE_CASE				    =		{}
 for index, val in enumerate(lowercase_			):
  SCREAMING_SNAKE_CASE				    =		target - val
  if compl in chk_map:
   return [chk_map[compl], index]
  SCREAMING_SNAKE_CASE				    =		index
 return []


if __name__ == "__main__":
      import doctest

      doctest.testmod()
      print(f'{two_sum([2, 7, 1_1, 1_5], 9) = }')








from __future__ import annotations
def 							UpperCAmelCase_   (				__snake_case		)	->     list[int]:







 """simple docstring"""


 if not list_of_ints:
  return []

 if min(__snake_case		) < 0:
  raise ValueError('''All numbers must be positive'''		)

 _lowercase				 =max(len(bin(__snake_case		)[2:]		) for x in list_of_ints		)
 return _msd_radix_sort(__snake_case	,		__snake_case		)
def 							UpperCAmelCase_   (				__snake_case	,		__snake_case		)	->     list[int]:







 """simple docstring"""


 if bit_position == 0 or len(__snake_case		) in [0, 1]:
  return list_of_ints

 _lowercase				 =[]
 _lowercase				 =[]
 # Split numbers based on bit at bit_position from the right
 for number in list_of_ints:
  if (number >> (bit_position - 1)) & 1:
   # number has a one at bit bit_position
   ones.append(__snake_case		)
  else:
   # number has a zero at bit bit_position
   zeros.append(__snake_case		)

    # recursively split both lists further
 _lowercase				 =_msd_radix_sort(__snake_case	,		bit_position - 1		)
 _lowercase				 =_msd_radix_sort(__snake_case	,		bit_position - 1		)

 # recombine lists
 _lowercase				 =zeros
 res.extend(__snake_case		)

 return res
def 							UpperCAmelCase_   (				__snake_case		)	->     List[str]:







 """simple docstring"""


 _lowercase				 =len(__snake_case		)
 if not list_of_ints or length == 1:
  return

 if min(__snake_case		) < 0:
  raise ValueError('''All numbers must be positive'''		)

 _lowercase				 =max(len(bin(__snake_case		)[2:]		) for x in list_of_ints		)
 _msd_radix_sort_inplace(__snake_case	,		__snake_case	,		0	,		__snake_case		)
def 							UpperCAmelCase_   (				__snake_case	,		__snake_case	,		__snake_case	,		__snake_case		)	->     Any:







 """simple docstring"""


 if bit_position == 0 or end_index - begin_index <= 1:
  return

 bit_position -= 1

 _lowercase				 =begin_index
 _lowercase				 =end_index - 1
 while i <= j:
  _lowercase				 =False
  if not (list_of_ints[i] >> bit_position) & 1:
   # found zero at the beginning
   i += 1
   _lowercase				 =True
  if (list_of_ints[j] >> bit_position) & 1:
   # found one at the end
   j -= 1
   _lowercase				 =True

  if changed:
   continue

  _lowercase ,       _lowercase				 =list_of_ints[j], list_of_ints[i]
  j -= 1
  if j != i:
   i += 1

 _msd_radix_sort_inplace(__snake_case	,		__snake_case	,		__snake_case	,		__snake_case		)
 _msd_radix_sort_inplace(__snake_case	,		__snake_case	,		__snake_case	,		__snake_case		)


if __name__ == "__main__":
  import doctest

  doctest.testmod()

