




from __future__ import annotations

from math import ceil, floor, sqrt


def 		lowerCamelCase__       (						_A = 2000000				):







	'''simple docstring'''





	snake_case_						       =	[0]
	snake_case_						       =	42

	for idx in range(1	,      ceil(sqrt(target * 2				) * 1.1				)				):
		triangle_numbers.append(triangle_numbers[-1] + idx				)

	# we want this to be as close as possible to target
	snake_case_						       =	0
	# the area corresponding to the grid that gives the product closest to target
	snake_case_						       =	0
	# an estimate of b, using the quadratic formula
	snake_case_						       =	42
	# the largest integer less than b_estimate
	snake_case_						       =	42
	# the largest integer less than b_estimate
	snake_case_						       =	42
	# the triangle number corresponding to b_floor
	snake_case_						       =	42
	# the triangle number corresponding to b_ceil
	snake_case_						       =	42

	for idx_a, triangle_a in enumerate(triangle_numbers[1:]	,      1				):
		snake_case_						       =	(-1 + sqrt(1 + 8 * target / triangle_a				)) / 2
		snake_case_						       =	floor(_A				)
		snake_case_						       =	ceil(_A				)
		snake_case_						       =	triangle_numbers[b_floor]
		snake_case_						       =	triangle_numbers[b_ceil]

		if abs(target - triangle_b_first_guess * triangle_a				) < abs(
		    target - best_product				):
			snake_case_						       =	triangle_b_first_guess * triangle_a
			snake_case_						       =	idx_a * b_floor

		if abs(target - triangle_b_second_guess * triangle_a				) < abs(
		    target - best_product				):
			snake_case_						       =	triangle_b_second_guess * triangle_a
			snake_case_						       =	idx_a * b_ceil

	return area


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






from typing import TYPE_CHECKING

from ...file_utils import _LazyModule, is_tokenizers_available, is_torch_available, is_vision_available
from ...utils import OptionalDependencyNotAvailable


lowercase__							:	Union[str, Any]											=		{"configuration_dpt": ["DPT_PRETRAINED_CONFIG_ARCHIVE_MAP", "DPTConfig"]}

try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowercase__							:	Tuple											=		["DPTFeatureExtractor"]
		lowercase__							:	Optional[Any]											=		["DPTImageProcessor"]

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowercase__							:	Dict											=		[
		    "DPT_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "DPTForDepthEstimation",
		    "DPTForSemanticSegmentation",
		    "DPTModel",
		    "DPTPreTrainedModel",
		]


if TYPE_CHECKING:
		from .configuration_dpt import DPT_PRETRAINED_CONFIG_ARCHIVE_MAP, DPTConfig

		try:
				if not is_vision_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .feature_extraction_dpt import DPTFeatureExtractor
				from .image_processing_dpt import DPTImageProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_dpt import (
				    DPT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    DPTForDepthEstimation,
				    DPTForSemanticSegmentation,
				    DPTModel,
				    DPTPreTrainedModel,
				)


else:
		import sys

		lowercase__							:	List[Any]											=		_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)
