



"""simple docstring"""





from math import isclose, sqrt




def 	UpperCAmelCase     (		A	:						float     ,				A	:						float     ,				A	:						float       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		point_y / 4 / point_x
		_UpperCAmelCase							 =		2 * normal_gradient / (1 + normal_gradient * normal_gradient)
		_UpperCAmelCase							 =		(1 - normal_gradient * normal_gradient) / (
		    1 + normal_gradient * normal_gradient
		)
		_UpperCAmelCase							 =		(sa - ca * incoming_gradient) / (ca + sa * incoming_gradient)

		# to find the next point, solve the simultaeneous equations:
		# y^2 + 4x^2 = 100
		# y - b = m * (x - a)
		# ==> A x^2 + B x + C = 0
		_UpperCAmelCase							 =		outgoing_gradient**2 + 4
		_UpperCAmelCase							 =		2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
		_UpperCAmelCase							 =		(point_y - outgoing_gradient * point_x) ** 2 - 100

		_UpperCAmelCase							 =		(
		    -linear_term - sqrt(linear_term**2 - 4 * quadratic_term * constant_term       )
		) / (2 * quadratic_term)
		_UpperCAmelCase							 =		(
		    -linear_term + sqrt(linear_term**2 - 4 * quadratic_term * constant_term       )
		) / (2 * quadratic_term)

		# two solutions, one of which is our input point
		_UpperCAmelCase							 =		x_minus if isclose(A     ,				A       ) else x_plus
		_UpperCAmelCase							 =		point_y + outgoing_gradient * (next_x - point_x)

		return next_x, next_y, outgoing_gradient




def 	UpperCAmelCase     (		A	:						float = 1.4     ,				A	:						float = -9.6       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		0
		_UpperCAmelCase							 =		first_x_coord
		_UpperCAmelCase							 =		first_y_coord
		_UpperCAmelCase							 =		(10.1 - point_y) / (0.0 - point_x)

		while not (-0.01 <= point_x <= 0.01 and point_y > 0):
				_UpperCAmelCase							 =		next_point(A     ,				A     ,				A       )
				num_reflections += 1

		return num_reflections


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







"""simple docstring"""





import os

lowercase  							=					{'''I''': 1, '''V''': 5, '''X''': 10, '''L''': 50, '''C''': 1_00, '''D''': 5_00, '''M''': 10_00}




def 	UpperCAmelCase     (		A	:						str       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		0

		_UpperCAmelCase							 =		0
		while index < len(A       ) - 1:
				_UpperCAmelCase							 =		SYMBOLS[numerals[index]]
				_UpperCAmelCase							 =		SYMBOLS[numerals[index + 1]]
				if current_value < next_value:
						total_value -= current_value
				else:
						total_value += current_value
				index += 1
		total_value += SYMBOLS[numerals[index]]

		return total_value




def 	UpperCAmelCase     (		A	:						int       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		''

		_UpperCAmelCase							 =		num // 1000
		numerals += m_count * "M"
		num %= 1000

		_UpperCAmelCase							 =		num // 100
		if c_count == 9:
				numerals += "CM"
				c_count -= 9
		elif c_count == 4:
				numerals += "CD"
				c_count -= 4
		if c_count >= 5:
				numerals += "D"
				c_count -= 5
		numerals += c_count * "C"
		num %= 100

		_UpperCAmelCase							 =		num // 10
		if x_count == 9:
				numerals += "XC"
				x_count -= 9
		elif x_count == 4:
				numerals += "XL"
				x_count -= 4
		if x_count >= 5:
				numerals += "L"
				x_count -= 5
		numerals += x_count * "X"
		num %= 10

		if num == 9:
				numerals += "IX"
				num -= 9
		elif num == 4:
				numerals += "IV"
				num -= 4
		if num >= 5:
				numerals += "V"
				num -= 5
		numerals += num * "I"

		return numerals




def 	UpperCAmelCase     (		A	:						str = "/p089_roman.txt"       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		0

		with open(os.path.dirname(A       ) + roman_numerals_filename       ) as filea:
				_UpperCAmelCase							 =		filea.readlines()

		for line in lines:
				_UpperCAmelCase							 =		line.strip()
				_UpperCAmelCase							 =		parse_roman_numerals(A       )
				_UpperCAmelCase							 =		generate_roman_numerals(A       )
				savings += len(A       ) - len(A       )

		return savings


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


