
from __future__ import annotations

import sys


def  A			(   lowercase					)  ->    int:
		'''simple docstring'''

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


def  A			(   lowercase					)  ->    tuple[int, int]:
		'''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
		UpperCamelCase      ,    UpperCamelCase            =	_fib(n // 2					)
		UpperCamelCase            =	a * (b * 2 - a)
		UpperCamelCase            =	a * a + b * b
		return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
					_UpperCAmelCase   :					List[str]    =			int(sys.argv[1])
					print(F'''fibonacci({n}) is {fibonacci(n)}''')


from __future__ import annotations


def  A			(   lowercase       ,			lowercase					)  ->    int:
		'''simple docstring'''

		UpperCamelCase      ,    UpperCamelCase            =	0, len(lowercase					) - 1
		while start_ind <= end_ind:
				if array[start_ind] == search_item:
						return start_ind
				elif array[end_ind] == search_item:
						return end_ind
				else:
						start_ind += 1
						end_ind -= 1
    # returns -1 if search_item is not found in array
		return -1


if __name__ == "__main__":
					print(double_linear_search(list(range(100)), 40))
