





def lowerCAmelCase__(__snake_case       ,__snake_case       ,__snake_case       ,__snake_case							)				->      bool:







	'''simple docstring'''







	if graph[path[curr_ind - 1]][next_ver] == 0:
		return False

	# 2. Validate that next vertex is not already in path
	return not any(vertex == next_ver for vertex in path							)





def lowerCAmelCase__(__snake_case       ,__snake_case       ,__snake_case							)				->      bool:







	'''simple docstring'''







	if curr_ind == len(__snake_case							):
		# return whether path exists between current and starting vertices
		return graph[path[curr_ind - 1]][path[0]] == 1

	# Recursive Step
	for next_ver in range(0       ,len(__snake_case							)							):
		if valid_connection(__snake_case       ,__snake_case       ,__snake_case       ,__snake_case							):
			# Insert current vertex  into path as next transition
			lowerCamelCase__								=		next_ver
			# Validate created path
			if util_hamilton_cycle(__snake_case       ,__snake_case       ,curr_ind + 1							):
				return True
			# Backtrack
			lowerCamelCase__								=		-1
	return False





def lowerCAmelCase__(__snake_case       ,__snake_case = 0							)				->      list[int]:







	'''simple docstring'''







	lowerCamelCase__								=		[-1] * (len(__snake_case							) + 1)
	# initialize start and end of path with starting index
	lowerCamelCase__								=		lowerCamelCase__								=		start_index
	# evaluate and if we find answer return path either return empty array
	return path if util_hamilton_cycle(__snake_case       ,__snake_case       ,1							) else []










def lowerCAmelCase__(__snake_case       ,__snake_case							)				->      float:







	'''simple docstring'''







	if mass < 0:
		raise ValueError('''The mass of a body cannot be negative'''							)
	return 0.5 * mass * abs(__snake_case							) * abs(__snake_case							)


if __name__ == "__main__":
			import doctest

			doctest.testmod(verbose=True)



