'''simple docstring'''


from __future__ import annotations






class 						A   :





							def __init__(      self				:							Union[str, Any]     ,		__a				:							List[str]=None	)							->	Tuple:
								__UpperCAmelCase							=			data
								__UpperCAmelCase							=			None






							def __repr__(      self				:							int	)							->	Any:
								__UpperCAmelCase							=			[]
								__UpperCAmelCase							=			self
								while temp:
									string_rep.append(f"""{temp.data}"""	)
									__UpperCAmelCase							=			temp.next
								return "->".join(__snake_case	)





def       lowerCAmelCase					(		UpperCamelCase__				:   list       ):


	"""simple docstring"""
	if not elements_list:
		raise Exception('''The Elements List is empty'''       )

	__UpperCAmelCase							=			Node(elements_list[0]       )
	for i in range(1    ,					len(a_       )       ):
		__UpperCAmelCase							=			Node(elements_list[i]       )
		__UpperCAmelCase							=			current.next
	return head





def       lowerCAmelCase					(		UpperCamelCase__				:   Node       ):


	"""simple docstring"""
	if head_node is not None and isinstance(a_    ,					a_       ):
		print_reverse(head_node.next       )
		print(head_node.data       )





def       lowerCAmelCase					(		):


	"""simple docstring"""
	from doctest import testmod

	testmod()

	__UpperCAmelCase							=			make_linked_list([1_4, 5_2, 1_4, 1_2, 4_3]       )
	print('''Linked List:'''       )
	print(a_       )
	print('''Elements in Reverse:'''       )
	print_reverse(a_       )


if __name__ == "__main__":
					main()



'''simple docstring'''


from __future__ import annotations

import math





def       lowerCAmelCase					(		UpperCamelCase__				:   float    ,					UpperCamelCase__				:   int       ):


	"""simple docstring"""
	__UpperCAmelCase							=			u
	for i in range(1    ,					UpperCamelCase__       ):
		__UpperCAmelCase							=			temp * (u - i)
	return temp





def       lowerCAmelCase					(		):


	"""simple docstring"""
	__UpperCAmelCase							=			int(input('''enter the numbers of values: '''       )       )
	__UpperCAmelCase							=			[]
	for _ in range(UpperCamelCase__       ):
		y.append([]       )
	for i in range(UpperCamelCase__       ):
		for j in range(UpperCamelCase__       ):
			y[i].append(UpperCamelCase__       )
			__UpperCAmelCase							=			0

	print('''enter the values of parameters in a list: '''       )
	__UpperCAmelCase							=			list(map(UpperCamelCase__    ,					input().split()       )       )

	print('''enter the values of corresponding parameters: '''       )
	for i in range(UpperCamelCase__       ):
		__UpperCAmelCase							=			float(input()       )

	__UpperCAmelCase							=			int(input('''enter the value to interpolate: '''       )       )
	__UpperCAmelCase							=			(value - x[0]) / (x[1] - x[0])

	# for calculating forward difference table

	for i in range(1    ,					UpperCamelCase__       ):
		for j in range(n - i       ):
			__UpperCAmelCase							=			y[j + 1][i - 1] - y[j][i - 1]

	__UpperCAmelCase							=			y[0][0]
	for i in range(1    ,					UpperCamelCase__       ):
		summ += (ucal(UpperCamelCase__    ,					UpperCamelCase__       ) * y[0][i]) / math.factorial(UpperCamelCase__       )

	print(f"""the value at {value} is {summ}"""       )


if __name__ == "__main__":
					main()
