



'''simple docstring'''





from math import radians as angle_to_radians
from math import sin

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

def 	a_					(							lowercase__	,lowercase__	)				->				None:







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

  if not isinstance(lowercase__	,(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_					(							lowercase__	,lowercase__	)				->				float:
  check_args(lowercase__	,lowercase__	)
  __lowerCamelCase	:	Optional[Any]   	=			angle_to_radians(2 * angle	)
  return round(init_velocity**2 * sin(lowercase__	) / g	,2	)

def 	a_					(							lowercase__	,lowercase__	)				->				float:
  check_args(lowercase__	,lowercase__	)
  __lowerCamelCase	:	str   	=			angle_to_radians(lowercase__	)
  return round(init_velocity**2 * sin(lowercase__	) ** 2 / (2 * g)	,2	)

def 	a_					(							lowercase__	,lowercase__	)				->				float:
  check_args(lowercase__	,lowercase__	)
  __lowerCamelCase	:	Dict   	=			angle_to_radians(lowercase__	)
  return round(2 * init_velocity * sin(lowercase__	) / g	,2	)

def 	a_					(							)				->				None:
  __lowerCamelCase	,__lowerCamelCase	:	Optional[int]   	=			25, 20
  assert horizontal_distance(lowercase__	,lowercase__	) == 40.97
  assert max_height(lowercase__	,lowercase__	) == 3.73
  assert total_time(lowercase__	,lowercase__	) == 1.74


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

   testmod()

   # Get input from user
   _UpperCamelCase							    =						float(input('Initial Velocity: ').strip())

   # Get input from user
   _UpperCamelCase							    =						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_					(							_lowerCAmelCase	,_lowerCAmelCase	)				->				int:
  # The longer word should come first
  if len(_lowerCAmelCase	) < len(_lowerCAmelCase	):
    return levenshtein_distance(_lowerCAmelCase	,_lowerCAmelCase	)

  if len(_lowerCAmelCase	) == 0:
    return len(_lowerCAmelCase	)

  __lowerCamelCase	:	int   	=			list(range(len(_lowerCAmelCase	) + 1	)	)

  for i, ca in enumerate(_lowerCAmelCase	):
    __lowerCamelCase	:	Union[str, Any]   	=			[i + 1]

    for j, ca in enumerate(_lowerCAmelCase	):
      # Calculate insertions, deletions and substitutions
      __lowerCamelCase	:	Any   	=			previous_row[j + 1] + 1
      __lowerCamelCase	:	int   	=			current_row[j] + 1
      __lowerCamelCase	:	Any   	=			previous_row[j] + (ca != ca)

      # Get the minimum to append to the current row
      current_row.append(min(_lowerCAmelCase	,_lowerCAmelCase	,_lowerCAmelCase	)	)

    # Store the previous row
    __lowerCamelCase	:	Optional[int]   	=			current_row

  # Returns the last element (distance)
  return previous_row[-1]


if __name__ == "__main__":
   _UpperCamelCase							    =						input('Enter the first word:\n').strip()
   _UpperCamelCase							    =						input('Enter the second word:\n').strip()

   _UpperCamelCase							    =						levenshtein_distance(first_word, second_word)
   print(f'''Levenshtein distance between {first_word} and {second_word} is {result}''')






