

from __future__ import annotations

from pathlib import Path





def  _snake_case		(snake_case_					:     tuple[int, int]    ,       snake_case_					:     tuple[int, int]  )							->		int:
  return pointa[0] * pointa[1] - pointa[1] * pointa[0]





def  _snake_case		(snake_case_					:     int    ,       snake_case_					:     int    ,       snake_case_					:     int    ,       snake_case_					:     int    ,       snake_case_					:     int    ,       snake_case_					:     int  )							->		bool:
  __UpperCAmelCase	:  tuple[int, int]		=     (xa, ya)
  __UpperCAmelCase	:  tuple[int, int]		=     (xa - xa, ya - ya)
  __UpperCAmelCase	:  tuple[int, int]		=     (xa - xa, ya - ya)
  __UpperCAmelCase	:  float		=     -vector_product(snake_case_    ,       snake_case_  ) / vector_product(
      snake_case_    ,       snake_case_  )
  __UpperCAmelCase	:  float		=     +vector_product(snake_case_    ,       snake_case_  ) / vector_product(
      snake_case_    ,       snake_case_  )

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





def  _snake_case		(snake_case_					:     str = "p102_triangles.txt"  )							->		int:
  __UpperCAmelCase	:  str		=     Path(snake_case_  ).parent.joinpath(snake_case_  ).read_text(encoding='utf-8'  )

  __UpperCAmelCase	:  list[list[int]]		=     []
  for line in data.strip().split('\n'  ):
    triangles.append([int(snake_case_  ) for number in line.split(','  )]  )

  __UpperCAmelCase	:  int		=     0
  __UpperCAmelCase	:  list[int]

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

  return ret


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









from __future__ import annotations

import sys






def 	lowerCamelCase_       (			_a			):




		"""simple docstring"""






		if n < 0:
				raise ValueError('''Negative arguments are not supported'''			)
		return _fib(_a			)[0]






def 	lowerCamelCase_       (			_a			):




		"""simple docstring"""






		if n == 0:  # (F(0), F(1))
				return (0, 1)

		# F(2n) = F(n)[2F(n+1) − F(n)]
		# F(2n+1) = F(n+1)^2+F(n)^2
		lowerCAmelCase__	,      lowerCAmelCase__  :     Dict       	=   _fib(n // 2			)
		lowerCAmelCase__  :     Dict       	=   a * (b * 2 - a)
		lowerCAmelCase__  :     Union[str, Any]       	=   a * a + b * b
		return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
		lowerCamelCase		=						int(sys.argv[1])
		print(f'''fibonacci({n}) is {fibonacci(n)}''')




