





"""simple docstring"""





def 	__UpperCAmelCase					(       snake_case_  :  Optional[int]   ,	snake_case_  :  List[str]   )							->	Optional[int]:






   """simple docstring"""


   if n < 0:
      return 0
   # table[i] represents the number of ways to get to amount i
   _lowerCAmelCase					     =		[0] * (n + 1)

   # There is exactly 1 way to get to zero(You pick no coins).
   _lowerCAmelCase					     =		1

   # Pick all coins one by one and update table[] values
   # after the index greater than or equal to the value of the
   # picked coin
   for coin_val in s:
      for j in range(snake_case_   ,	n + 1   ):
         table[j] += table[j - coin_val]

   return table[n]


if __name__ == "__main__":
  import doctest

  doctest.testmod()




"""simple docstring"""





from itertools import combinations_with_replacement






def 	__UpperCAmelCase					(       snake_case_  :  int = 100   )							->	int:






   """simple docstring"""


   _lowerCAmelCase					     =		[*list(range(1   ,	21   )   ), 25]
   _lowerCAmelCase					     =		[2 * x for x in range(1   ,	21   )] + [50]
   _lowerCAmelCase					     =		[3 * x for x in range(1   ,	21   )]
   _lowerCAmelCase					     =		singles + doubles + triples + [0]

   _lowerCAmelCase					     =		0
   _lowerCAmelCase					     =		42
   _lowerCAmelCase					     =		42
   _lowerCAmelCase					     =		42
   _lowerCAmelCase					     =		42

   for double in doubles:
      for throwa, throwa in combinations_with_replacement(snake_case_   ,	2   ):
         _lowerCAmelCase					     =		double + throwa + throwa
         if checkout_total < limit:
            num_checkouts += 1

   return num_checkouts


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