





"""simple docstring"""
import math







class       a							:



 def __init__(     self				,       _snake_case=0     ):  # a graph with Node 0,1,...,N-1







  """simple docstring"""






  lowerCAmelCase    				= n
  lowerCAmelCase    				= [
      [math.inf for j in range(0				,       SCREAMING_SNAKE_CASE_     )] for i in range(0				,       SCREAMING_SNAKE_CASE_     )
  ]  # adjacency matrix for weight
  lowerCAmelCase    				= [
      [math.inf for j in range(0				,       SCREAMING_SNAKE_CASE_     )] for i in range(0				,       SCREAMING_SNAKE_CASE_     )
  ]  # dp[i][j] stores minimum distance from i to j



 def    UpperCamelCase__  (     self				,       _snake_case				,       _snake_case				,       _snake_case     ):







  """simple docstring"""






  lowerCAmelCase    				= w



 def    UpperCamelCase__  (     self     ):







  """simple docstring"""






  for k in range(0				,       self.n     ):
   for i in range(0				,       self.n     ):
    for j in range(0				,       self.n     ):
     lowerCAmelCase    				= min(self.dp[i][j]				,       self.dp[i][k] + self.dp[k][j]     )



 def    UpperCamelCase__  (     self				,       _snake_case				,       _snake_case     ):







  """simple docstring"""






  return self.dp[u][v]


if __name__ == "__main__":
       __UpperCamelCase     :						Dict						       =  Graph(5)
       graph.add_edge(0, 2, 9)
       graph.add_edge(0, 4, 10)
       graph.add_edge(1, 3, 5)
       graph.add_edge(2, 3, 7)
       graph.add_edge(3, 0, 10)
       graph.add_edge(3, 1, 2)
       graph.add_edge(3, 2, 1)
       graph.add_edge(3, 4, 6)
       graph.add_edge(4, 1, 3)
       graph.add_edge(4, 2, 4)
       graph.add_edge(4, 3, 9)
       graph.floyd_warshall()
       graph.show_min(1, 4)
       graph.show_min(0, 3)







"""simple docstring"""






import timeit

import numpy as np

import datasets
from datasets.arrow_writer import ArrowWriter
from datasets.features.features import _ArrayXD




def __magic_name__	(				_lowerCamelCase:		Optional[Any]			)					->						Dict:

	'''simple docstring'''




	def wrapper(*_lowerCamelCase:		Any,					**_lowerCamelCase:		Union[str, Any]			):
		lowerCAmelCase												=  timeit.default_timer()
		lowerCAmelCase												=  func(*_lowerCamelCase,					**_lowerCamelCase			)
		lowerCAmelCase												=  timeit.default_timer() - starttime
		return delta

	lowerCAmelCase												=  func.__name__

	return wrapper




def __magic_name__	(				_lowerCamelCase:		dict,					_lowerCamelCase:		List[Any]=100,					_lowerCamelCase:		int=None			)					->						List[Any]:

	'''simple docstring'''




	lowerCAmelCase												=  []
	lowerCAmelCase												=  seq_shapes or {}
	for i in range(_lowerCamelCase			):
		lowerCAmelCase												=  {}
		for col_id, (k, v) in enumerate(features.items()			):
			if isinstance(_lowerCamelCase,					_ArrayXD			):
				lowerCAmelCase												=  np.random.rand(*v.shape			).astype(v.dtype			)
			elif isinstance(_lowerCamelCase,					datasets.Value			):
				if v.dtype == "string":
					lowerCAmelCase												=  '''The small grey turtle was surprisingly fast when challenged.'''
				else:
					lowerCAmelCase												=  np.random.randint(10,					size=1			).astype(v.dtype			).item()
			elif isinstance(_lowerCamelCase,					datasets.Sequence			):
				while isinstance(_lowerCamelCase,					datasets.Sequence			):
					lowerCAmelCase												=  v.feature
				lowerCAmelCase												=  seq_shapes[k]
				lowerCAmelCase												=  np.random.rand(*_lowerCamelCase			).astype(v.dtype			)
			lowerCAmelCase												=  data

		dummy_data.append((i, example)			)

	return dummy_data




def __magic_name__	(				_lowerCamelCase:		Tuple,					_lowerCamelCase:		Tuple,					_lowerCamelCase:		Union[str, Any]=100,					_lowerCamelCase:		List[Any]=None			)					->						List[Any]:

	'''simple docstring'''




	lowerCAmelCase												=  generate_examples(_lowerCamelCase,					num_examples=_lowerCamelCase,					seq_shapes=_lowerCamelCase			)

	with ArrowWriter(features=_lowerCamelCase,					path=_lowerCamelCase			) as writer:
		for key, record in dummy_data:
			lowerCAmelCase												=  features.encode_example(_lowerCamelCase			)
			writer.write(_lowerCamelCase			)

		lowerCAmelCase							,       lowerCAmelCase												=  writer.finalize()

	if not num_final_examples == num_examples:
		raise ValueError(
		    F"""Error writing the dataset, wrote {num_final_examples} examples but should have written {num_examples}."""			)

	lowerCAmelCase												=  datasets.Dataset.from_file(filename=_lowerCamelCase,					info=datasets.DatasetInfo(features=_lowerCamelCase			)			)

	return dataset


