def 				__lowerCamelCase		(						lowerCAmelCase__     ):
       lowerCAmelCase__					     = set()
       # edges = list of graph's edges
       lowerCAmelCase__					     = get_edges(lowerCAmelCase__     )

       # While there are still elements in edges list, take an arbitrary edge
       # (from_node, to_node) and add his extremity to chosen_vertices and then
       # remove all arcs adjacent to the from_node and to_node
       while edges:
              lowerCAmelCase__     , lowerCAmelCase__					     = edges.pop()
              chosen_vertices.add(lowerCAmelCase__     )
              chosen_vertices.add(lowerCAmelCase__     )
              for edge in edges.copy():
                     if from_node in edge or to_node in edge:
                            edges.discard(lowerCAmelCase__     )
       return chosen_vertices






def 				__lowerCamelCase		(						lowerCAmelCase__     ):
       lowerCAmelCase__					     = set()
       for from_node, to_nodes in graph.items():
              for to_node in to_nodes:
                     edges.add((from_node, to_node)     )
       return edges


if __name__ == "__main__":
    import doctest

    doctest.testmod()

    # graph = {0: [1, 3], 1: [0, 3], 2: [0, 3, 4], 3: [0, 1, 2], 4: [2, 3]}
    # print(f"Matching vertex cover:\n{matching_min_vertex_cover(graph)}")

from math import log

from scipy.constants import Boltzmann, physical_constants

lowerCAmelCase__     						=			300  # TEMPERATURE (unit = K)






def 				__lowerCamelCase		(						lowerCAmelCase__     ,  lowerCAmelCase__     ,  lowerCAmelCase__     ,  ):

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