





'''simple docstring'''






def       lowercase_      (		lowercase__				,  lowercase__						)   ->Union[str, Any]:
						print('\nThe shortest path matrix using Floyd Warshall algorithm\n'						)
						for i in range(lowercase__						):
												for j in range(lowercase__						):
																		if dist[i][j] != float('inf'						):
																								print(int(dist[i][j]						)				,  end='\t'						)
																		else:
																								print('INF'				,  end='\t'						)
												print()





def       lowercase_      (		lowercase__				,  lowercase__						)   ->List[Any]:
						_snake_case:   Tuple  					=		[[float('inf'						) for _ in range(lowercase__						)] for _ in range(lowercase__						)]

						for i in range(lowercase__						):
												for j in range(lowercase__						):
																		_snake_case:   Optional[int]  					=		graph[i][j]

																		# check vertex k against all other vertices (i, j)
						for k in range(lowercase__						):
												# looping through rows of graph array
												for i in range(lowercase__						):
																		# looping through columns of graph array
																		for j in range(lowercase__						):
																								if (
																								    dist[i][k] != float('inf'						)
																								    and dist[k][j] != float('inf'						)
																								    and dist[i][k] + dist[k][j] < dist[i][j]
																								):
																														_snake_case:   Optional[int]  					=		dist[i][k] + dist[k][j]

						_print_dist(lowercase__				,  lowercase__						)
						return dist, v


if __name__ == "__main__":
		A   : Dict             =			int(input('Enter number of vertices: '))
		A   : Any             =			int(input('Enter number of edges: '))

		A   : int             =			[[float('inf') for i in range(v)] for j in range(v)]

		for i in range(v):
				A   : Optional[Any]             =			0.0

				# src and dst are indices that must be within the array size graph[e][v]
				# failure to follow this will result in an error
		for i in range(e):
				print('\nEdge ', i + 1)
				A   : List[Any]             =			int(input('Enter source:'))
				A   : Union[str, Any]             =			int(input('Enter destination:'))
				A   : int             =			float(input('Enter weight:'))
				A   : Dict             =			weight

		floyd_warshall(graph, v)

		# Example Input
		# Enter number of vertices: 3
		# Enter number of edges: 2

		# # generated graph from vertex and edge inputs
		# [[inf, inf, inf], [inf, inf, inf], [inf, inf, inf]]
		# [[0.0, inf, inf], [inf, 0.0, inf], [inf, inf, 0.0]]

		# specify source, destination and weight for edge #1
		# Edge  1
		# Enter source:1
		# Enter destination:2
		# Enter weight:2

		# specify source, destination and weight for edge #2
		# Edge  2
		# Enter source:2
		# Enter destination:1
		# Enter weight:1

		# # Expected Output from the vertice, edge and src, dst, weight inputs!!
		# 0		INF	INF
		# INF	0	2
		# INF	1	0












'''simple docstring'''






import torch





def       lowercase_      (		)   ->Dict:
						if torch.cuda.is_available():
												_snake_case:   Any  					=		torch.cuda.device_count()
						else:
												_snake_case:   Optional[int]  					=		0
						print(F'''Successfully ran on {num_gpus} GPUs'''						)


if __name__ == "__main__":
		main()





