
from __future__ import annotations

__snake_case								=  [-10, -5, 0, 5, 5.1, 11, 13, 21, 3, 4, -21, -10, -5, -1, 0]
__snake_case								=  [-5, 0, 5, 5.1, 11, 13, 21, -1, 4, -1, -10, -5, -1, 0, -1]






def 							_lowercase							(     UpperCamelCase_		)		->		list[float]:
					'''simple docstring'''


					SCREAMING_SNAKE_CASE__													= []
					SCREAMING_SNAKE_CASE__													= len(__lowerCamelCase		)

					for i in range(__lowerCamelCase		):
										SCREAMING_SNAKE_CASE__													= -1
										for j in range(i + 1	,	__lowerCamelCase		):
															if arr[i] < arr[j]:
																				SCREAMING_SNAKE_CASE__													= arr[j]
																				break
										result.append(__lowerCamelCase		)
					return result






def 							_lowercase							(     UpperCamelCase_		)		->		list[float]:
					'''simple docstring'''


					SCREAMING_SNAKE_CASE__													= []
					for i, outer in enumerate(__lowerCamelCase		):
										SCREAMING_SNAKE_CASE__													= -1
										for inner in arr[i + 1 :]:
															if outer < inner:
																				SCREAMING_SNAKE_CASE__													= inner
																				break
										result.append(__lowerCamelCase		)
					return result






def 							_lowercase							(     UpperCamelCase_		)		->		list[float]:
					'''simple docstring'''


					SCREAMING_SNAKE_CASE__													= len(__lowerCamelCase		)
					SCREAMING_SNAKE_CASE__													= []
					SCREAMING_SNAKE_CASE__													= [-1] * arr_size

					for index in reversed(range(__lowerCamelCase		)		):
										if stack:
															while stack[-1] <= arr[index]:
																				stack.pop()
																				if not stack:
																									break
										if stack:
															SCREAMING_SNAKE_CASE__													= stack[-1]
										stack.append(arr[index]		)
					return result


if __name__ == "__main__":
				from doctest import testmod
				from timeit import timeit

				testmod()
				print(next_greatest_element_slow(arr))
				print(next_greatest_element_fast(arr))
				print(next_greatest_element(arr))

				__snake_case								=  (
				    "from __main__ import arr, next_greatest_element_slow, "
				    "next_greatest_element_fast, next_greatest_element"
				)
				print(
				    """next_greatest_element_slow():""",
				    timeit("""next_greatest_element_slow(arr)""", setup=setup),
				)
				print(
				    """next_greatest_element_fast():""",
				    timeit("""next_greatest_element_fast(arr)""", setup=setup),
				)
				print(
				    """     next_greatest_element():""",
				    timeit("""next_greatest_element(arr)""", setup=setup),
				)











__UpperCamelCase					:       Optional[int]    					=      {
    "Pillow": "Pillow",
    "accelerate": "accelerate>=0.11.0",
    "compel": "compel==0.1.8",
    "black": "black~=23.1",
    "datasets": "datasets",
    "filelock": "filelock",
    "flax": "flax>=0.4.1",
    "hf-doc-builder": "hf-doc-builder>=0.3.0",
    "huggingface-hub": "huggingface-hub>=0.13.2",
    "requests-mock": "requests-mock==1.10.0",
    "importlib_metadata": "importlib_metadata",
    "invisible-watermark": "invisible-watermark",
    "isort": "isort>=5.5.4",
    "jax": "jax>=0.2.8,!=0.3.2",
    "jaxlib": "jaxlib>=0.1.65",
    "Jinja2": "Jinja2",
    "k-diffusion": "k-diffusion>=0.0.12",
    "torchsde": "torchsde",
    "note_seq": "note_seq",
    "librosa": "librosa",
    "numpy": "numpy",
    "omegaconf": "omegaconf",
    "parameterized": "parameterized",
    "protobuf": "protobuf>=3.20.3,<4",
    "pytest": "pytest",
    "pytest-timeout": "pytest-timeout",
    "pytest-xdist": "pytest-xdist",
    "ruff": "ruff>=0.0.241",
    "safetensors": "safetensors",
    "sentencepiece": "sentencepiece>=0.1.91,!=0.1.92",
    "scipy": "scipy",
    "onnx": "onnx",
    "regex": "regex!=2019.12.17",
    "requests": "requests",
    "tensorboard": "tensorboard",
    "torch": "torch>=1.4",
    "torchvision": "torchvision",
    "transformers": "transformers>=4.25.1",
    "urllib3": "urllib3<=2.0.0",
}

