


def SCREAMING_SNAKE_CASE	(			__lowerCAmelCase							,   __lowerCAmelCase							,   __lowerCAmelCase				)    ->				int:

  def count_of_possible_combinations(__lowerCAmelCase				) -> int:
    if target < 0:
      return 0
    if target == 0:
      return 1
    return sum(count_of_possible_combinations(target - item				) for item in array				)

  return count_of_possible_combinations(__lowerCAmelCase				)







def SCREAMING_SNAKE_CASE	(			__lowerCAmelCase							,   __lowerCAmelCase							,   __lowerCAmelCase				)    ->				int:

  def count_of_possible_combinations_with_dp_array(
      __lowerCAmelCase							,   __lowerCAmelCase				) -> int:
    if target < 0:
      return 0
    if target == 0:
      return 1
    if dp_array[target] != -1:
      return dp_array[target]
    snake_case__						= sum(
        count_of_possible_combinations_with_dp_array(target - item							,   __lowerCAmelCase				)
        for item in array				)
    snake_case__						= answer
    return answer

  snake_case__						= [-1] * (target + 1)
  return count_of_possible_combinations_with_dp_array(__lowerCAmelCase							,   __lowerCAmelCase				)







def SCREAMING_SNAKE_CASE	(			__lowerCAmelCase							,   __lowerCAmelCase							,   __lowerCAmelCase				)    ->				int:
  snake_case__						= [0] * (target + 1)
  snake_case__						= 1

  for i in range(1							,   target + 1				):
    for j in range(__lowerCAmelCase				):
      if i - array[j] >= 0:
        dp_array[i] += dp_array[i - array[j]]

  return dp_array[target]


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   lowerCamelCase__							:						Any							     =   3
   lowerCamelCase__							:						int							     =   5
   lowerCamelCase__							:						List[Any]							     =   [1, 2, 5]
   print(combination_sum_iv(n, array, target))





'''simple docstring'''






def lowerCamelCase__     (		__lowerCamelCase			:				str = "The quick brown fox jumps over the lazy dog"			,       ):







   '''simple docstring'''




   _UpperCAmelCase  :  Optional[Any]				       =set()

   # Replace all the whitespace in our sentence
   _UpperCAmelCase  :  Dict				       =input_str.replace(' '			,       ''				)
   for alpha in input_str:
      if "a" <= alpha.lower() <= "z":
         frequency.add(alpha.lower()				)
   return len(__lowerCamelCase				) == 2_6





def lowerCamelCase__     (		__lowerCamelCase			:				str = "The quick brown fox jumps over the lazy dog"			,       ):







   '''simple docstring'''




   _UpperCAmelCase  :  Tuple				       =[False] * 2_6
   for char in input_str:
      if char.islower():
         _UpperCAmelCase  :  Dict				       =True
      elif char.isupper():
         _UpperCAmelCase  :  List[str]				       =True
   return all(__lowerCamelCase				)





def lowerCamelCase__     (		__lowerCamelCase			:				str = "The quick brown fox jumps over the lazy dog"			,       ):







   '''simple docstring'''




   return len({char for char in input_str.lower() if char.isalpha()}				) == 2_6





def lowerCamelCase__     (		):







   '''simple docstring'''




   from timeit import timeit

   _UpperCAmelCase  :  List[Any]				       ='from __main__ import is_pangram, is_pangram_faster, is_pangram_fastest'
   print(timeit('is_pangram()'			,       setup=__lowerCamelCase				)				)
   print(timeit('is_pangram_faster()'			,       setup=__lowerCamelCase				)				)
   print(timeit('is_pangram_fastest()'			,       setup=__lowerCamelCase				)				)
   # 5.348480500048026, 2.6477354579837993, 1.8470395830227062
   # 5.036091582966037, 2.644472333951853,  1.8869528750656173


if __name__ == "__main__":
 import doctest

 doctest.testmod()
 benchmark()

