






'''simple docstring'''




def 					__lowercase						(			__lowercase = 3   ,  __lowercase = 7   ,  __lowercase = 100_0000       )       ->						int:

      '''simple docstring'''


      _A			     =	0
      _A			     =	1

      for current_denominator in range(1   ,  limit + 1       ):
            _A			     =	current_denominator * numerator // denominator
            if current_denominator % denominator == 0:
                  current_numerator -= 1
            if current_numerator * max_denominator > current_denominator * max_numerator:
                  _A			     =	current_numerator
                  _A			     =	current_denominator
      return max_numerator


if __name__ == "__main__":
    print(solution(numerator=3, denominator=7, limit=1_00_00_00))











import functools


def 						lowerCamelCase__    (		_A     ,	_A							):







	'''simple docstring'''





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

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

	if len(_A							) == 0:
		return 0

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

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

	snake_case_		    =     set(_A							)

	@functools.cache
	def dynamic_programming(_A							) -> 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()
