"""simple docstring"""


from __future__ import annotations

from pathlib import Path





def       lowerCamelCase_			( __lowerCAmelCase       ,   __lowerCAmelCase    )							-> int:




						'''simple docstring'''



						return pointa[0] * pointa[1] - pointa[1] * pointa[0]





def       lowerCamelCase_			( __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase    )							-> bool:




						'''simple docstring'''



						lowerCamelCase__ =(xa, ya)
						lowerCamelCase__ =(xa - xa, ya - ya)
						lowerCamelCase__ =(xa - xa, ya - ya)
						lowerCamelCase__ =-vector_product(__lowerCAmelCase       ,   __lowerCAmelCase    ) / vector_product(
						    __lowerCAmelCase       ,   __lowerCAmelCase    )
						lowerCamelCase__ =+vector_product(__lowerCAmelCase       ,   __lowerCAmelCase    ) / vector_product(
						    __lowerCAmelCase       ,   __lowerCAmelCase    )

						return a > 0 and b > 0 and a + b < 1





def       lowerCamelCase_			( __lowerCAmelCase = "p102_triangles.txt"    )							-> int:




						'''simple docstring'''



						lowerCamelCase__ =Path(__lowerCAmelCase    ).parent.joinpath(__lowerCAmelCase    ).read_text(encoding="utf-8"    )

						lowerCamelCase__ =[]
						for line in data.strip().split("\n"    ):
												triangles.append([int(__lowerCAmelCase    ) for number in line.split(","    )]    )

						lowerCamelCase__ =0
						lowerCamelCase__ =42

						for triangle in triangles:
												ret += contains_origin(*__lowerCAmelCase    )

						return ret


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



"""simple docstring"""


class        __UpperCAmelCase						:

				def __init__(				self     ,			_lowerCamelCase				):
										lowerCamelCase__ =data
										lowerCamelCase__ =None
										lowerCamelCase__ =None





def       lowerCamelCase_			( __lowerCAmelCase       ,   __lowerCAmelCase    )							-> BinaryTreeNode | None:




						'''simple docstring'''



						if node is None:
												lowerCamelCase__ =BinaryTreeNode(__lowerCAmelCase    )
												return node

						# binary search tree is not empty,
						# so we will insert it into the tree
						# if new_value is less than value of data in node,
						#  add it to left subtree and proceed recursively
						if new_value < node.data:
												lowerCamelCase__ =insert(node.left_child       ,   __lowerCAmelCase    )
						else:
												# if new_value is greater than value of data in node,
												#  add it to right subtree and proceed recursively
												lowerCamelCase__ =insert(node.right_child       ,   __lowerCAmelCase    )
						return node





def       lowerCamelCase_			( __lowerCAmelCase    )							-> list[int]:  # if node is None,return




						'''simple docstring'''



						if node:
												lowerCamelCase__ =inorder(node.left_child    )
												lowerCamelCase__ =[*inorder_array, node.data]
												lowerCamelCase__ =inorder_array + inorder(node.right_child    )
						else:
												lowerCamelCase__ =[]
						return inorder_array





def       lowerCamelCase_			( )							-> BinaryTreeNode | None:




						'''simple docstring'''



						lowerCamelCase__ =insert(__lowerCAmelCase       ,   15    )
						insert(__lowerCAmelCase       ,   10    )
						insert(__lowerCAmelCase       ,   25    )
						insert(__lowerCAmelCase       ,   6    )
						insert(__lowerCAmelCase       ,   14    )
						insert(__lowerCAmelCase       ,   20    )
						insert(__lowerCAmelCase       ,   60    )
						return root





def       lowerCamelCase_			( )							-> None:




						'''simple docstring'''



						lowerCamelCase__ =make_tree()
						print("Printing values of binary search tree in Inorder Traversal."    )
						inorder(__lowerCAmelCase    )


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	main()


