






'''simple docstring'''







def     A__      (					__lowerCAmelCase		:      list[int]    ):
						if not numbers:
												return 0

						if not isinstance(__lowerCAmelCase ,     (list, tuple)    ) or not all(
						    isinstance(__lowerCAmelCase ,     __lowerCAmelCase    ) for number in numbers    ):
												raise ValueError("""numbers must be an iterable of integers"""    )

						lowerCamelCase__								=	lowerCamelCase__								=	lowerCamelCase__								=	numbers[0]

						for i in range(1 ,     len(__lowerCAmelCase    )    ):
												# update the maximum and minimum subarray products
												lowerCamelCase__								=	numbers[i]
												if number < 0:
																		lowerCamelCase__							,      lowerCamelCase__								=	min_till_now, max_till_now
												lowerCamelCase__								=	max(__lowerCAmelCase ,     max_till_now * number    )
												lowerCamelCase__								=	min(__lowerCAmelCase ,     min_till_now * number    )

												# update the maximum product found till now
												lowerCamelCase__								=	max(__lowerCAmelCase ,     __lowerCAmelCase    )

						return max_prod








'''simple docstring'''




from __future__ import annotations

_SCREAMING_SNAKE_CASE							     =			1.6021E-19  # units = C





def 	__lowerCamelCase			(      __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float      ,    )		->  tuple[str, float]:
   if (conductivity, electron_conc, mobility).count(0		) != 1:
      raise ValueError("""You cannot supply more or less than 2 values"""		)
   elif conductivity < 0:
      raise ValueError("""Conductivity cannot be negative"""		)
   elif electron_conc < 0:
      raise ValueError("""Electron concentration cannot be negative"""		)
   elif mobility < 0:
      raise ValueError("""mobility cannot be negative"""		)
   elif conductivity == 0:
      return (
          "conductivity",
          mobility * electron_conc * ELECTRON_CHARGE,
      )
   elif electron_conc == 0:
      return (
          "electron_conc",
          conductivity / (mobility * ELECTRON_CHARGE),
      )
   else:
      return (
          "mobility",
          conductivity / (electron_conc * ELECTRON_CHARGE),
      )


if __name__ == "__main__":
 import doctest

 doctest.testmod()

