





from __future__ import annotations

from math import ceil, floor, sqrt







def  _SCREAMING_SNAKE_CASE				(   a = 2_00_00_00  )      ->      int:
					__A	:						list[int]       =				[0]
					__A	:						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
					__A	:						int       =				0
					# the area corresponding to the grid that gives the product closest to target
					__A	:						int       =				0
					# an estimate of b, using the quadratic formula
					__A	:						float
					# the largest integer less than b_estimate
					__A	:						int
					# the largest integer less than b_estimate
					__A	:						int
					# the triangle number corresponding to b_floor
					__A	:						int
					# the triangle number corresponding to b_ceil
					__A	:						int

					for idx_a, triangle_a in enumerate(triangle_numbers[1:]					,						1  ):
										__A	:						Optional[Any]       =				(-1 + sqrt(1 + 8 * target / triangle_a  )) / 2
										__A	:						Optional[Any]       =				floor(a  )
										__A	:						int       =				ceil(a  )
										__A	:						int       =				triangle_numbers[b_floor]
										__A	:						int       =				triangle_numbers[b_ceil]

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

										if abs(target - triangle_b_second_guess * triangle_a  ) < abs(
										    target - best_product  ):
															__A	:						Optional[Any]       =				triangle_b_second_guess * triangle_a
															__A	:						Union[str, 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


UpperCAmelCase						:   Any			  =     {
    '''configuration_mvp''': ['''MVP_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''MvpConfig''', '''MvpOnnxConfig'''],
    '''tokenization_mvp''': ['''MvpTokenizer'''],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCAmelCase						:   int			  =     ['''MvpTokenizerFast''']

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCAmelCase						:   str			  =     [
				    '''MVP_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''MvpForCausalLM''',
				    '''MvpForConditionalGeneration''',
				    '''MvpForQuestionAnswering''',
				    '''MvpForSequenceClassification''',
				    '''MvpModel''',
				    '''MvpPreTrainedModel''',
				]

if TYPE_CHECKING:
				from .configuration_mvp import MVP_PRETRAINED_CONFIG_ARCHIVE_MAP, MvpConfig, MvpOnnxConfig
				from .tokenization_mvp import MvpTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_mvp_fast import MvpTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_mvp import (
								    MVP_PRETRAINED_MODEL_ARCHIVE_LIST,
								    MvpForCausalLM,
								    MvpForConditionalGeneration,
								    MvpForQuestionAnswering,
								    MvpForSequenceClassification,
								    MvpModel,
								    MvpPreTrainedModel,
								)

else:
				import sys

				UpperCAmelCase						:   List[str]			  =     _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




