


"""simple docstring"""
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


__SCREAMING_SNAKE_CASE							:      List[str]						=      {
    'configuration_xlm': ['XLM_PRETRAINED_CONFIG_ARCHIVE_MAP', 'XLMConfig', 'XLMOnnxConfig'],
    'tokenization_xlm': ['XLMTokenizer'],
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__SCREAMING_SNAKE_CASE							:      Optional[Any]						=      [
				    'XLM_PRETRAINED_MODEL_ARCHIVE_LIST',
				    'XLMForMultipleChoice',
				    'XLMForQuestionAnswering',
				    'XLMForQuestionAnsweringSimple',
				    'XLMForSequenceClassification',
				    'XLMForTokenClassification',
				    'XLMModel',
				    'XLMPreTrainedModel',
				    'XLMWithLMHeadModel',
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__SCREAMING_SNAKE_CASE							:      Optional[Any]						=      [
				    'TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST',
				    'TFXLMForMultipleChoice',
				    'TFXLMForQuestionAnsweringSimple',
				    'TFXLMForSequenceClassification',
				    'TFXLMForTokenClassification',
				    'TFXLMMainLayer',
				    'TFXLMModel',
				    'TFXLMPreTrainedModel',
				    'TFXLMWithLMHeadModel',
				]


if TYPE_CHECKING:
				from .configuration_xlm import XLM_PRETRAINED_CONFIG_ARCHIVE_MAP, XLMConfig, XLMOnnxConfig
				from .tokenization_xlm import XLMTokenizer

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_xlm import (
								    XLM_PRETRAINED_MODEL_ARCHIVE_LIST,
								    XLMForMultipleChoice,
								    XLMForQuestionAnswering,
								    XLMForQuestionAnsweringSimple,
								    XLMForSequenceClassification,
								    XLMForTokenClassification,
								    XLMModel,
								    XLMPreTrainedModel,
								    XLMWithLMHeadModel,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_xlm import (
								    TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFXLMForMultipleChoice,
								    TFXLMForQuestionAnsweringSimple,
								    TFXLMForSequenceClassification,
								    TFXLMForTokenClassification,
								    TFXLMMainLayer,
								    TFXLMModel,
								    TFXLMPreTrainedModel,
								    TFXLMWithLMHeadModel,
								)

else:
				import sys

				__SCREAMING_SNAKE_CASE							:      Dict						=      _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)







"""simple docstring"""
import math





class        __A       :





							'''simple docstring'''

							def __init__(			self							: List[str]						,    UpperCAmelCase_							: Tuple=0    )   ->Optional[int]:  # a graph with Node 0,1,...,N-1



														"""simple docstring"""



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



							def 						lowerCAmelCase    (			self							: List[str]						,    UpperCAmelCase_							: Any						,    UpperCAmelCase_							: List[str]						,    UpperCAmelCase_							: Optional[Any]    )   ->Optional[int]:



														"""simple docstring"""



														snake_case_          =						w



							def 						lowerCAmelCase    (			self							: Optional[int]    )   ->Any:



														"""simple docstring"""



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



							def 						lowerCAmelCase    (			self							: Optional[int]						,    UpperCAmelCase_							: Dict						,    UpperCAmelCase_							: Optional[Any]    )   ->Union[str, Any]:



														"""simple docstring"""



														return self.dp[u][v]


if __name__ == "__main__":
				__SCREAMING_SNAKE_CASE							:      Optional[int]						=      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)



