
'''simple docstring'''
import functools






def      UpperCamelCase_				(      A__  ,      A__						):
	a_      				=						len(A__						)
	a_      				=						len(A__						)

	@functools.cache
	def min_distance(A__  ,      A__						) -> int:
		# if first word index is overflow - delete all from the second word
		if indexa >= len_worda:
			return len_worda - indexa
		# if second word index is overflow - delete all from the first word
		if indexa >= len_worda:
			return len_worda - indexa
		a_      				=						int(worda[indexa] != worda[indexa]						)  # current letters not identical
		return min(
		    1 + min_distance(indexa + 1  ,      A__						)  ,      1 + min_distance(A__  ,      indexa + 1						)  ,      diff + min_distance(indexa + 1  ,      indexa + 1						)  ,      )

	return min_distance(0  ,      0						)


if __name__ == "__main__":
		import doctest

		doctest.testmod()


'''simple docstring'''
from math import log

from scipy.constants import Boltzmann, physical_constants

lowercase__											=3_00  # TEMPERATURE (unit = K)






def      UpperCamelCase_				(      A__  ,      A__  ,      A__  ,      ):

	if donor_conc <= 0:
		raise ValueError("""Donor concentration should be positive"""						)
	elif acceptor_conc <= 0:
		raise ValueError("""Acceptor concentration should be positive"""						)
	elif intrinsic_conc <= 0:
		raise ValueError("""Intrinsic concentration should be positive"""						)
	elif donor_conc <= intrinsic_conc:
		raise ValueError(
		    """Donor concentration should be greater than intrinsic concentration"""						)
	elif acceptor_conc <= intrinsic_conc:
		raise ValueError(
		    """Acceptor concentration should be greater than intrinsic concentration"""						)
	else:
		return (
		    Boltzmann
		    * T
		    * log((donor_conc * acceptor_conc) / intrinsic_conc**2						)
		    / physical_constants["electron volt"][0]
		)


if __name__ == "__main__":
		import doctest

		doctest.testmod()
