






"""simple docstring"""





import functools







def      lowerCamelCase__       (							_lowerCamelCase       :		list[int]		,				_lowerCamelCase       :		list[int] )      ->				int:

  # Validation
  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' )

  lowerCamelCase_         =						set(_lowerCamelCase )

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












"""simple docstring"""





from math import pow, sqrt







def      lowerCamelCase__       (							*_lowerCamelCase       :		float )      ->				bool:
  lowerCamelCase_         =						len(_lowerCamelCase ) > 0 and all(value > 0.0 for value in values )
  return result







def      lowerCamelCase__       (							_lowerCamelCase       :		float		,				_lowerCamelCase       :		float )      ->				float | ValueError:
  return (
      round(sqrt(molar_mass_a / molar_mass_a )		,				6 )
      if validate(_lowerCamelCase		,				_lowerCamelCase )
      else ValueError('Input Error: Molar mass values must greater than 0.' )
  )







def      lowerCamelCase__       (							_lowerCamelCase       :		float		,				_lowerCamelCase       :		float		,				_lowerCamelCase       :		float )      ->				float | ValueError:
  return (
      round(effusion_rate * sqrt(molar_mass_a / molar_mass_a )		,				6 )
      if validate(_lowerCamelCase		,				_lowerCamelCase		,				_lowerCamelCase )
      else ValueError(
          'Input Error: Molar mass and effusion rate values must greater than 0.' )
  )







def      lowerCamelCase__       (							_lowerCamelCase       :		float		,				_lowerCamelCase       :		float		,				_lowerCamelCase       :		float )      ->				float | ValueError:
  return (
      round(effusion_rate / sqrt(molar_mass_a / molar_mass_a )		,				6 )
      if validate(_lowerCamelCase		,				_lowerCamelCase		,				_lowerCamelCase )
      else ValueError(
          'Input Error: Molar mass and effusion rate values must greater than 0.' )
  )







def      lowerCamelCase__       (							_lowerCamelCase       :		float		,				_lowerCamelCase       :		float		,				_lowerCamelCase       :		float )      ->				float | ValueError:
  return (
      round(molar_mass / pow(effusion_rate_a / effusion_rate_a		,				2 )		,				6 )
      if validate(_lowerCamelCase		,				_lowerCamelCase		,				_lowerCamelCase )
      else ValueError(
          'Input Error: Molar mass and effusion rate values must greater than 0.' )
  )







def      lowerCamelCase__       (							_lowerCamelCase       :		float		,				_lowerCamelCase       :		float		,				_lowerCamelCase       :		float )      ->				float | ValueError:
  return (
      round(pow(effusion_rate_a / effusion_rate_a		,				2 ) / molar_mass		,				6 )
      if validate(_lowerCamelCase		,				_lowerCamelCase		,				_lowerCamelCase )
      else ValueError(
          'Input Error: Molar mass and effusion rate values must greater than 0.' )
  )




