





"""simple docstring"""
from math import radians as angle_to_radians
from math import sin

# Acceleration Constant on Earth (unit m/s^2)
_snake_case					:		Tuple							=			9.8_0_6_6_5






def  A__    (      UpperCamelCase ,  UpperCamelCase	):







							if not isinstance(UpperCamelCase ,  (int, float)	):
														raise TypeError("Invalid velocity. Should be a positive number."	)

							if not isinstance(UpperCamelCase ,  (int, float)	):
														raise TypeError("Invalid angle. Range is 1-90 degrees."	)

							# Ensure valid angle
							if angle > 90 or angle < 1:
														raise ValueError("Invalid angle. Range is 1-90 degrees."	)

							# Ensure valid velocity
							if init_velocity < 0:
														raise ValueError("Invalid velocity. Should be a positive number."	)






def  A__    (      UpperCamelCase ,  UpperCamelCase	):
							check_args(UpperCamelCase ,  UpperCamelCase	)
							A		=  angle_to_radians(2 * angle	)
							return round(init_velocity**2 * sin(UpperCamelCase	) / g ,  2	)






def  A__    (      UpperCamelCase ,  UpperCamelCase	):
							check_args(UpperCamelCase ,  UpperCamelCase	)
							A		=  angle_to_radians(UpperCamelCase	)
							return round(init_velocity**2 * sin(UpperCamelCase	) ** 2 / (2 * g) ,  2	)






def  A__    (      UpperCamelCase ,  UpperCamelCase	):
							check_args(UpperCamelCase ,  UpperCamelCase	)
							A		=  angle_to_radians(UpperCamelCase	)
							return round(2 * init_velocity * sin(UpperCamelCase	) / g ,  2	)






def  A__    (      ):
							A,     A		=  25, 20
							assert horizontal_distance(UpperCamelCase ,  UpperCamelCase	) == 40.97
							assert max_height(UpperCamelCase ,  UpperCamelCase	) == 3.73
							assert total_time(UpperCamelCase ,  UpperCamelCase	) == 1.74


if __name__ == "__main__":
					from doctest import testmod

					testmod()

					# Get input from user
					_snake_case					:		Optional[Any]							=			float(input('Initial Velocity: ').strip())

					# Get input from user
					_snake_case					:		Dict							=			float(input('angle: ').strip())

					# Print results
					print()
					print('Results: ')
					print(F"""Horizontal Distance: {horizontal_distance(init_vel, angle)!s} [m]""")
					print(F"""Maximum Height: {max_height(init_vel, angle)!s} [m]""")
					print(F"""Total Time: {total_time(init_vel, angle)!s} [s]""")









"""simple docstring"""
def  A__    (      UpperCamelCase ,  UpperCamelCase	):
							for index, item in enumerate(UpperCamelCase	):
														if item == target:
																					return index
							return -1






def  A__    (      UpperCamelCase ,  UpperCamelCase ,  UpperCamelCase ,  UpperCamelCase	):
							if not (0 <= high < len(UpperCamelCase	) and 0 <= low < len(UpperCamelCase	)):
														raise Exception("Invalid upper or lower bound!"	)
							if high < low:
														return -1
							if sequence[low] == target:
														return low
							if sequence[high] == target:
														return high
							return rec_linear_search(UpperCamelCase ,  low + 1 ,  high - 1 ,  UpperCamelCase	)


if __name__ == "__main__":
		_snake_case					:		int							=			input('Enter numbers separated by comma:\n').strip()
		_snake_case					:		int							=			[int(item.strip()) for item in user_input.split(',')]

		_snake_case					:		Union[str, Any]							=			int(input('Enter a single number to be found in the list:\n').strip())
		_snake_case					:		List[Any]							=			linear_search(sequence, target)
		if result != -1:
				print(F"""linear_search({sequence}, {target}) = {result}""")
		else:
				print(F"""{target} was not found in {sequence}""")


