




'''simple docstring'''






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowercase						:   Optional[Any]      						=							{
    '''configuration_decision_transformer''': [
        '''DECISION_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''DecisionTransformerConfig''',
    ],
}

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowercase						:   str      						=							[
          '''DECISION_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST''',
          '''DecisionTransformerGPT2Model''',
          '''DecisionTransformerGPT2PreTrainedModel''',
          '''DecisionTransformerModel''',
          '''DecisionTransformerPreTrainedModel''',
      ]


if TYPE_CHECKING:
      from .configuration_decision_transformer import (
          DECISION_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP,
          DecisionTransformerConfig,
      )

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_decision_transformer import (
                DECISION_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
                DecisionTransformerGPTaModel,
                DecisionTransformerGPTaPreTrainedModel,
                DecisionTransformerModel,
                DecisionTransformerPreTrainedModel,
            )


else:
      import sys

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







'''simple docstring'''

def      __magic_name__							(			A				)      ->		tuple[int, int]:
	# base case
	if len(A				) == 1:
		return a[0], a[0]
	else:
		# split A into half.
		snake_case							=					a[: len(A				) // 2]
		snake_case							=					a[len(A				) // 2 :]

		# 2 sub problems, 1/2 of original size.
		snake_case			,			snake_case							=					max_difference(A				)
		snake_case			,			snake_case							=					max_difference(A				)

		# get min of first and max of second
		# linear time
		snake_case							=					min(A				)
		snake_case							=					max(A				)

		# 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()





