




from __future__ import annotations

from pathlib import Path



def     lowerCAmelCase		(		_lowerCAmelCase				: Union[str, Any]    ,				_lowerCAmelCase				: int						):




 """simple docstring"""







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



def     lowerCAmelCase		(		_lowerCAmelCase				: Optional[int]    ,				_lowerCAmelCase				: Any    ,				_lowerCAmelCase				: Union[str, Any]    ,				_lowerCAmelCase				: str    ,				_lowerCAmelCase				: List[str]    ,				_lowerCAmelCase				: List[Any]						):




 """simple docstring"""







 UpperCAmelCase__							=    (xa, ya)
 UpperCAmelCase__							=    (xa - xa, ya - ya)
 UpperCAmelCase__							=    (xa - xa, ya - ya)
 UpperCAmelCase__							=    -vector_product(SCREAMING_SNAKE_CASE_    ,				SCREAMING_SNAKE_CASE_						) / vector_product(
     SCREAMING_SNAKE_CASE_    ,				SCREAMING_SNAKE_CASE_						)
 UpperCAmelCase__							=    +vector_product(SCREAMING_SNAKE_CASE_    ,				SCREAMING_SNAKE_CASE_						) / vector_product(
     SCREAMING_SNAKE_CASE_    ,				SCREAMING_SNAKE_CASE_						)

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



def     lowerCAmelCase		(		_lowerCAmelCase				: int = "p102_triangles.txt"						):




 """simple docstring"""







 UpperCAmelCase__							=    Path(SCREAMING_SNAKE_CASE_						).parent.joinpath(SCREAMING_SNAKE_CASE_						).read_text(encoding="utf-8"						)

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

 UpperCAmelCase__							=    0
 UpperCAmelCase__							=    42

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

 return ret


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












def        A__						(							SCREAMING_SNAKE_CASE_				,							SCREAMING_SNAKE_CASE_		) ->  Union[str, Any]:
		if n < 0:
				return 0
		# table[i] represents the number of ways to get to amount i
		lowerCamelCase :			int    		=[0] * (n + 1)

		# There is exactly 1 way to get to zero(You pick no coins).
		lowerCamelCase :			List[Any]    		=1

		# Pick all coins one by one and update table[] values
		# after the index greater than or equal to the value of the
		# picked coin
		for coin_val in s:
				for j in range(SCREAMING_SNAKE_CASE_				,							n + 1		):
						table[j] += table[j - coin_val]

		return table[n]


if __name__ == "__main__":
				import doctest

				doctest.testmod()

