

from math import factorial


def 					_UpperCAmelCase       (  _SCREAMING_SNAKE_CASE					:		int ,   _SCREAMING_SNAKE_CASE					:		int       ):





    """simple docstring"""


    if n < k or k < 0:
        raise ValueError('Please enter positive integers for n and k where n >= k'       )
    return factorial(_SCREAMING_SNAKE_CASE       ) // (factorial(_SCREAMING_SNAKE_CASE       ) * factorial(n - k       ))


if __name__ == "__main__":
       print(
           "The number of five-card hands possible from a standard",
           F'fifty-two card deck is: {combinations(52, 5)}\n',
       )

       print(
           "If a class of 40 students must be arranged into groups of",
           F'4 for group projects, there are {combinations(40, 4)} ways',
           "to arrange them.\n",
       )

       print(
           "If 10 teams are competing in a Formula One race, there",
           F'are {combinations(10, 3)} ways that first, second and',
           "third place can be awarded.",
       )





def 					_UpperCAmelCase       (  _SCREAMING_SNAKE_CASE					:		int = 200       ):





    """simple docstring"""


    SCREAMING_SNAKE_CASE_									=						[1, 2, 5, 10, 20, 50, 100, 200]
    SCREAMING_SNAKE_CASE_									=						[0] * (pence + 1)
    SCREAMING_SNAKE_CASE_									=						1  # base case: 1 way to make 0 pence

    for coin in coins:
        for i in range(_SCREAMING_SNAKE_CASE ,   pence + 1 ,   1       ):
            number_of_ways[i] += number_of_ways[i - coin]
    return number_of_ways[pence]


if __name__ == "__main__":
       assert solution(200) == 73_682


