
"""simple docstring"""



def lowerCamelCase_				(     _lowerCamelCase			:	Optional[int]				):
       if upper_limit < 0:
              raise ValueError('''Limit for the Catalan sequence must be ≥ 0'''				)

       lowerCamelCase_       							=		[0] * (upper_limit + 1)

       # Base case: C(0) = C(1) = 1
       lowerCamelCase_       							=		1
       if upper_limit > 0:
              lowerCamelCase_       							=		1

       # Recurrence relation: C(i) = sum(C(j).C(i-j-1)), from j = 0 to i
       for i in range(2					,				upper_limit + 1				):
              for j in range(snake_case__				):
                     catalan_list[i] += catalan_list[j] * catalan_list[i - j - 1]

       return catalan_list


if __name__ == "__main__":
 print("""\n********* Catalan Numbers Using Dynamic Programming ************\n""")
 print("""\n*** Enter -1 at any time to quit ***""")
 print("""\nEnter the upper limit (≥ 0) for the Catalan number sequence: """, end="""""")
 try:
  while True:
   __lowercase						:     Dict							      =		int(input().strip())
   if N < 0:
    print("""\n********* Goodbye!! ************""")
    break
   else:
    print(f'''The Catalan numbers from 0 through {N} are:''')
    print(catalan_numbers(N))
    print("""Try another upper limit for the sequence: """, end="""""")
 except (NameError, ValueError):
  print("""\n********* Invalid input, goodbye! ************\n""")

 import doctest

 doctest.testmod()





"""simple docstring"""




from collections.abc import Sequence



def        a__					(							snake_case__			,					snake_case__ = False							)		->   float:
			if not arr:
						return 0

			lowerCamelCase      =   0 if allow_empty_subarrays else float("""-inf"""							)
			lowerCamelCase      =   0.0
			for num in arr:
						lowerCamelCase      =   max(0 if allow_empty_subarrays else num			,					curr_sum + num							)
						lowerCamelCase      =   max(snake_case__			,					snake_case__							)

			return max_sum


if __name__ == "__main__":
					from doctest import testmod

					testmod()

					lowerCAmelCase				:     Union[str, Any]					=				[-2, 1, -3, 4, -1, 2, 1, -5, 4]
					print(F"""{max_subarray_sum(nums) = }""")



