

from __future__ import annotations



class  __snake_case					:

  def __init__(   self  ,						_A):
      SCREAMING_SNAKE_CASE_													=  vertices
      SCREAMING_SNAKE_CASE_													=  [[0] * vertices for _ in range(_A)]

  def   lowerCAmelCase__       (   self  ,						_A):
      print('Vertex \t Distance from Source')
      for vertex in range(self.vertices):
          print(_A  ,						'\t\t'  ,						distances_from_source[vertex])

  def   lowerCAmelCase__       (   self  ,						_A  ,						_A):
      SCREAMING_SNAKE_CASE_													=  1E7
      SCREAMING_SNAKE_CASE_													=  0

      # Search not nearest vertex not in the shortest path tree
      for vertex in range(self.vertices):
          if distances_from_source[vertex] < minimum and visited[vertex] is False:
              SCREAMING_SNAKE_CASE_													=  distances_from_source[vertex]
              SCREAMING_SNAKE_CASE_													=  vertex
      return min_index


  def   lowerCAmelCase__       (   self  ,						_A):
      SCREAMING_SNAKE_CASE_													=  [int(1E7)] * self.vertices  # distances from the source
      SCREAMING_SNAKE_CASE_													=  0
      SCREAMING_SNAKE_CASE_													=  [False] * self.vertices

      for _ in range(self.vertices):
          SCREAMING_SNAKE_CASE_													=  self.minimum_distance(_A  ,						_A)
          SCREAMING_SNAKE_CASE_													=  True

          # Update dist value of the adjacent vertices
          # of the picked vertex only if the current
          # distance is greater than new distance and
          # the vertex in not in the shortest path tree
          for v in range(self.vertices):
              if (
                  self.graph[u][v] > 0
                  and visited[v] is False
                  and distances[v] > distances[u] + self.graph[u][v]
              ):
                  SCREAMING_SNAKE_CASE_													=  distances[u] + self.graph[u][v]

      self.print_solution(_A)


if __name__ == "__main__":
 UpperCamelCase__					: int								=      Graph(9)
 UpperCamelCase__					: Union[str, Any]								=      [
     [0, 4, 0, 0, 0, 0, 0, 8, 0],
     [4, 0, 8, 0, 0, 0, 0, 11, 0],
     [0, 8, 0, 7, 0, 4, 0, 0, 2],
     [0, 0, 7, 0, 9, 14, 0, 0, 0],
     [0, 0, 0, 9, 0, 10, 0, 0, 0],
     [0, 0, 4, 14, 10, 0, 2, 0, 0],
     [0, 0, 0, 0, 0, 2, 0, 1, 6],
     [8, 11, 0, 0, 0, 0, 1, 0, 7],
     [0, 0, 2, 0, 0, 0, 6, 7, 0],
 ]
 graph.dijkstra(0)





def    _UpperCAmelCase    (					_SCREAMING_SNAKE_CASE   :						float	,				_SCREAMING_SNAKE_CASE   :						float    ):





    """simple docstring"""


    return a + b


if __name__ == "__main__":
       UpperCamelCase__					: Union[str, Any]								=      5
       UpperCamelCase__					: List[Any]								=      6
       print(F'The sum of {a} + {b} is {add(a, b)}')


