





'''simple docstring'''

def 							UpperCAmelCase_    (	lowerCAmelCase_ = 400_0000							):

				"""simple docstring"""






				lowercase         = [0, 1]
				lowercase         = 0
				while fib[i] <= n:
								fib.append(fib[i] + fib[i + 1]							)
								if fib[i + 2] > n:
												break
								i += 1
				lowercase         = 0
				for j in range(len(lowerCAmelCase_							) - 1							):
								if fib[j] % 2 == 0:
												total += fib[j]

				return total


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











'''simple docstring'''

import functools







def 							UpperCAmelCase_    (	lowerCAmelCase_		,							lowerCAmelCase_							):

				"""simple docstring"""






				if not isinstance(lowerCAmelCase_		,							lowerCAmelCase_							) or not all(isinstance(lowerCAmelCase_		,							lowerCAmelCase_							) for day in days							):
								raise ValueError("The parameter days should be a list of integers"							)

				if len(lowerCAmelCase_							) != 3 or not all(isinstance(lowerCAmelCase_		,							lowerCAmelCase_							) for cost in costs							):
								raise ValueError("The parameter costs should be a list of three integers"							)

				if len(lowerCAmelCase_							) == 0:
								return 0

				if min(lowerCAmelCase_							) <= 0:
								raise ValueError("All days elements should be greater than 0"							)

				if max(lowerCAmelCase_							) >= 366:
								raise ValueError("All days elements should be less than 366"							)

				lowercase         = set(lowerCAmelCase_							)

				@functools.cache
				def dynamic_programming(lowerCAmelCase_							) -> int:
								if index > 365:
												return 0

								if index not in days_set:
												return dynamic_programming(index + 1							)

								return min(
								    costs[0] + dynamic_programming(index + 1							)		,							costs[1] + dynamic_programming(index + 7							)		,							costs[2] + dynamic_programming(index + 30							)		,							)

				return dynamic_programming(1							)


if __name__ == "__main__":
			import doctest

			doctest.testmod()




