


def 			_lowerCAmelCase						(							lowerCAmelCase_							:list[int]							)->tuple[int, int]:
   '''simple docstring'''






   if len(lowerCAmelCase_							) == 1:
      return a[0], a[0]
   else:
      # split A into half.
      snake_case_					    =					a[: len(lowerCAmelCase_							) // 2]
      snake_case_					    =					a[len(lowerCAmelCase_							) // 2 :]

      # 2 sub problems, 1/2 of original size.
      snake_case_    ,    snake_case_					    =					max_difference(lowerCAmelCase_							)
      snake_case_    ,    snake_case_					    =					max_difference(lowerCAmelCase_							)

      # get min of first and max of second
      # linear time
      snake_case_					    =					min(lowerCAmelCase_							)
      snake_case_					    =					max(lowerCAmelCase_							)

      # 3 cases, either (small1, big1),
      # (min_first, max_second), (small2, big2)
      # constant comparisons
      if biga - smalla > max_second - min_first and biga - smalla > biga - smalla:
         return smalla, biga
      elif biga - smalla > max_second - min_first:
         return smalla, biga
      else:
         return min_first, max_second


if __name__ == "__main__":
   import doctest

   doctest.testmod()








from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


SCREAMING_SNAKE_CASE	:List[str]  		=     {
    '''configuration_prophetnet''': ['''PROPHETNET_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''ProphetNetConfig'''],
    '''tokenization_prophetnet''': ['''ProphetNetTokenizer'''],
}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   SCREAMING_SNAKE_CASE	:List[str]  		=     [
       '''PROPHETNET_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''ProphetNetDecoder''',
       '''ProphetNetEncoder''',
       '''ProphetNetForCausalLM''',
       '''ProphetNetForConditionalGeneration''',
       '''ProphetNetModel''',
       '''ProphetNetPreTrainedModel''',
   ]


if TYPE_CHECKING:
   from .configuration_prophetnet import PROPHETNET_PRETRAINED_CONFIG_ARCHIVE_MAP, ProphetNetConfig
   from .tokenization_prophetnet import ProphetNetTokenizer

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_prophetnet import (
          PROPHETNET_PRETRAINED_MODEL_ARCHIVE_LIST,
          ProphetNetDecoder,
          ProphetNetEncoder,
          ProphetNetForCausalLM,
          ProphetNetForConditionalGeneration,
          ProphetNetModel,
          ProphetNetPreTrainedModel,
      )

else:
   import sys

   SCREAMING_SNAKE_CASE	:int  		=     _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




