


"""simple docstring"""







from collections import defaultdict
from math import ceil, sqrt




def      UpperCAmelCase__ (lowerCAmelCase_ = 100_0000						,		lowerCAmelCase_ = 10     ):




					'''simple docstring'''


					__SCREAMING_SNAKE_CASE		     =       defaultdict(lowerCAmelCase_     )

					for outer_width in range(3						,		(t_limit // 4) + 2     ):
										if outer_width * outer_width > t_limit:
															__SCREAMING_SNAKE_CASE		     =       max(
															    ceil(sqrt(outer_width * outer_width - t_limit     )     )						,		1     )
										else:
															__SCREAMING_SNAKE_CASE		     =       1

										hole_width_lower_bound += (outer_width - hole_width_lower_bound) % 2

										for hole_width in range(lowerCAmelCase_						,		outer_width - 1						,		2     ):
															count[outer_width * outer_width - hole_width * hole_width] += 1

					return sum(1 for n in count.values() if 1 <= n <= 10     )


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"     )

					__SCREAMING_SNAKE_CASE		     =       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()
