


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'''
from dataclasses import dataclass, field
from typing import ClassVar, Dict

from ..features import Features, Value
from .base import TaskTemplate


@dataclass(frozen=snake_case_)
class 			SCREAMING_SNAKE_CASE__      (     snake_case_):
				lowerCAmelCase_     			=							field(default="""language-modeling"""							,       metadata={"""include_in_asdict_even_if_is_default""": True})

				lowerCAmelCase_     			=							Features({"""text""": Value("""string""")})
				lowerCAmelCase_     			=							Features({})
				lowerCAmelCase_     			=							"text"







				@property
				def 						UpperCAmelCase_    (       self     )->		Dict[str, str]:







											'''simple docstring'''






											return {self.text_column: "text"}




