





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


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







def 						A_							(	_lowerCAmelCase = 1000	)		->					int:
 UpperCamelCase      :   Optional[int]			      =  -1
 UpperCamelCase      :   int			      =  0
 for a in range(1				,  n // 3	):
  # Solving the two equations a**2+b**2=c**2 and a+b+c=N eliminating c
  UpperCamelCase      :   Optional[Any]			      =  (n * n - 2 * a * n) // (2 * n - 2 * a)
  UpperCamelCase      :   List[str]			      =  n - a - b
  if c * c == (a * a + b * b):
   UpperCamelCase      :   Union[str, Any]			      =  a * b * c
   if candidate >= product:
    UpperCamelCase      :   Tuple			      =  candidate
 return product


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