





'''simple docstring'''





from __future__ import annotations

from math import ceil, floor, sqrt

def       A__(		__lowerCAmelCase = 2_00_00_00 ):
				_snake_case :			list[int]  						=   [0]
				_snake_case :			int

				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 :			int  						=   0
				# the area corresponding to the grid that gives the product closest to target
				_snake_case :			int  						=   0
				# an estimate of b, using the quadratic formula
				_snake_case :			float
				# the largest integer less than b_estimate
				_snake_case :			int
				# the largest integer less than b_estimate
				_snake_case :			int
				# the triangle number corresponding to b_floor
				_snake_case :			int
				# the triangle number corresponding to b_ceil
				_snake_case :			int

				for idx_a, triangle_a in enumerate(triangle_numbers[1:]	,			1 ):
								_snake_case :			Union[str, Any]  						=   (-1 + sqrt(1 + 8 * target / triangle_a )) / 2
								_snake_case :			List[str]  						=   floor(__lowerCAmelCase )
								_snake_case :			Tuple  						=   ceil(__lowerCAmelCase )
								_snake_case :			List[Any]  						=   triangle_numbers[b_floor]
								_snake_case :			List[Any]  						=   triangle_numbers[b_ceil]

								if abs(target - triangle_b_first_guess * triangle_a ) < abs(
								    target - best_product ):
												_snake_case :			Any  						=   triangle_b_first_guess * triangle_a
												_snake_case :			Optional[int]  						=   idx_a * b_floor

								if abs(target - triangle_b_second_guess * triangle_a ) < abs(
								    target - best_product ):
												_snake_case :			List[str]  						=   triangle_b_second_guess * triangle_a
												_snake_case :			Optional[Any]  						=   idx_a * b_ceil

				return area


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













from typing import TYPE_CHECKING

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


lowercase_		:				Optional[Any]				=						{
    '''configuration_roc_bert''': ['''ROC_BERT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''RoCBertConfig'''],
    '''tokenization_roc_bert''': ['''RoCBertTokenizer'''],
}

try:
		if not is_tokenizers_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		pass

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowercase_		:				Tuple				=						[
		    '''ROC_BERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''RoCBertForCausalLM''',
		    '''RoCBertForMaskedLM''',
		    '''RoCBertForMultipleChoice''',
		    '''RoCBertForPreTraining''',
		    '''RoCBertForQuestionAnswering''',
		    '''RoCBertForSequenceClassification''',
		    '''RoCBertForTokenClassification''',
		    '''RoCBertLayer''',
		    '''RoCBertModel''',
		    '''RoCBertPreTrainedModel''',
		    '''load_tf_weights_in_roc_bert''',
		]

if TYPE_CHECKING:
		from .configuration_roc_bert import ROC_BERT_PRETRAINED_CONFIG_ARCHIVE_MAP, RoCBertConfig
		from .tokenization_roc_bert import RoCBertTokenizer

		try:
				if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				raise OptionalDependencyNotAvailable()

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_roc_bert import (
				    ROC_BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    RoCBertForCausalLM,
				    RoCBertForMaskedLM,
				    RoCBertForMultipleChoice,
				    RoCBertForPreTraining,
				    RoCBertForQuestionAnswering,
				    RoCBertForSequenceClassification,
				    RoCBertForTokenClassification,
				    RoCBertLayer,
				    RoCBertModel,
				    RoCBertPreTrainedModel,
				    load_tf_weights_in_roc_bert,
				)


else:
		import sys

		lowercase_		:				Tuple				=						_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)






