code: 
  """simple docstring"""
  
  
  
  
  
  import heapq
  
  
  
  
  
  
  
  def 			__a  (	__lowerCamelCase,	__lowerCamelCase,	__lowerCamelCase						):
     UpperCAmelCase_      :      Union[str, Any]      =					[(0, start)]  # cost from start node,end node
     UpperCAmelCase_      :      Optional[Any]      =					set()
     while heap:
        (UpperCAmelCase_)      :      Union[str, Any]      =					heapq.heappop(__lowerCamelCase						)
        if u in visited:
           continue
        visited.add(__lowerCamelCase						)
        if u == end:
           return cost
        for v, c in graph[u]:
           if v in visited:
              continue
           UpperCAmelCase_      :      List[Any]      =					cost + c
           heapq.heappush(__lowerCamelCase,	(next_item, v)						)
     return -1
  
  
  _a	 =							{
      'A': [['B', 2], ['C', 5]],
      'B': [['A', 2], ['D', 3], ['E', 1], ['F', 1]],
      'C': [['A', 5], ['F', 3]],
      'D': [['B', 3]],
      'E': [['B', 4], ['F', 3]],
      'F': [['C', 3], ['E', 3]],
  }
  _a	 =							{
      'B': [['C', 1]],
      'C': [['D', 1]],
      'D': [['F', 1]],
      'E': [['B', 1], ['F', 3]],
      'F': [],
  }
  _a	 =							{
      'B': [['C', 1]],
      'C': [['D', 1]],
      'D': [['F', 1]],
      'E': [['B', 1], ['G', 2]],
      'F': [],
      'G': [['F', 1]],
  }
  
  _a	 =							dijkstra(G, 'E', 'C')
  print(short_distance)  # E -- 3 --> F -- 3 --> C == 6
  
  _a	 =							dijkstra(Ga, 'E', 'F')
  print(short_distance)  # E -- 3 --> F == 3
  
  _a	 =							dijkstra(Ga, 'E', 'F')
  print(short_distance)  # E -- 2 --> G -- 1 --> F == 3
  
  if __name__ == "__main__":
      import doctest
  
      doctest.testmod()
  
  
  
style_context: 
  """simple docstring"""
  
  
  
  
  
  from hashlib import mda, shaaaa
  
  _a	 =							(shaaaa, mda)
  
  
  class A_			:
  
  
  
  
    '''simple docstring'''
  
  
  
  
  
  
  
    def __init__(	self       ,     lowercase_ = 8						):
  
       """simple docstring"""
       UpperCAmelCase_      :      List[str]      =					0B0
       UpperCAmelCase_      :      Union[str, Any]      =					size
  
  
  
  
  
  
  
    def  UpperCamelCase__      (	self       ,     lowercase_						):
  
       """simple docstring"""
       UpperCAmelCase_      :      Union[str, Any]      =					self.hash_(lowercase_						)
       self.bitarray |= h
  
  
  
  
  
  
  
    def  UpperCamelCase__      (	self       ,     lowercase_						):
  
       """simple docstring"""
       UpperCAmelCase_      :      Optional[int]      =					self.hash_(lowercase_						)
       return (h & self.bitarray) == h
  
  
  
  
  
  
  
    def __contains__(	self       ,     lowercase_						):
  
       """simple docstring"""
       return self.exists(lowercase_						)
  
  
  
  
  
  
  
    def  UpperCamelCase__      (	self       ,     lowercase_						):
  
       """simple docstring"""
       UpperCAmelCase_      :      str      =					bin(lowercase_						)[2:]
       return res.zfill(self.size						)
  
  
  
  
  
  
  
    @property
    def  UpperCamelCase__      (	self						):
  
       """simple docstring"""
       return self.format_bin(self.bitarray						)
  
  
  
  
  
  
  
    def  UpperCamelCase__      (	self       ,     lowercase_						):
  
       """simple docstring"""
       UpperCAmelCase_      :      List[str]      =					0B0
       for func in HASH_FUNCTIONS:
          UpperCAmelCase_      :      str      =					(
              int.from_bytes(func(value.encode()						).digest()       ,     "little"						) % self.size
          )
          res |= 2**position
       return res
  
  
  
  
  
  
  
    def  UpperCamelCase__      (	self       ,     lowercase_						):
  
       """simple docstring"""
       return self.format_bin(self.hash_(lowercase_						)						)
  
  
  
  
  
  
  
    @property
    def  UpperCamelCase__      (	self						):
  
       """simple docstring"""
       UpperCAmelCase_      :      Optional[Any]      =					bin(self.bitarray						).count("1"						)
       return (n_ones / self.size) ** len(lowercase_						)
  
  
  