


'''simple docstring'''


from collections import defaultdict







def      snake_case_  (    SCREAMING_SNAKE_CASE__				, SCREAMING_SNAKE_CASE__	):







				"""simple docstring"""





				_SCREAMING_SNAKE_CASE					:			int							= first_str.lower().strip()
				_SCREAMING_SNAKE_CASE					:			List[Any]							= second_str.lower().strip()

				# Remove whitespace
				_SCREAMING_SNAKE_CASE					:			Union[str, Any]							= first_str.replace(""" """				, """"""	)
				_SCREAMING_SNAKE_CASE					:			int							= second_str.replace(""" """				, """"""	)

				# Strings of different lengths are not anagrams
				if len(SCREAMING_SNAKE_CASE__	) != len(SCREAMING_SNAKE_CASE__	):
								return False

				# Default values for count should be 0
				_SCREAMING_SNAKE_CASE					:			defaultdict[str, int]							= defaultdict(SCREAMING_SNAKE_CASE__	)

				# For each character in input strings,
				# increment count in the corresponding
				for i in range(len(SCREAMING_SNAKE_CASE__	)	):
								count[first_str[i]] += 1
								count[second_str[i]] -= 1

				return all(_count == 0 for _count in count.values()	)


if __name__ == "__main__":
				from doctest import testmod

				testmod()
				UpperCAmelCase_						:  Union[str, Any]				  =						input('Enter the first string ').strip()
				UpperCAmelCase_						:  Union[str, Any]				  =						input('Enter the second string ').strip()

				UpperCAmelCase_						:  Dict				  =						check_anagrams(input_a, input_b)
				print(F"{input_a} and {input_b} are {'' if status else 'not '}anagrams.")








'''simple docstring'''


def      snake_case_  (    SCREAMING_SNAKE_CASE__				, SCREAMING_SNAKE_CASE__	):







				"""simple docstring"""





				print("""\nThe shortest path matrix using Floyd Warshall algorithm\n"""	)
				for i in range(SCREAMING_SNAKE_CASE__	):
								for j in range(SCREAMING_SNAKE_CASE__	):
												if dist[i][j] != float("""inf"""	):
																print(int(dist[i][j]	)				, end="""\t"""	)
												else:
																print("""INF"""				, end="""\t"""	)
								print()







def      snake_case_  (    SCREAMING_SNAKE_CASE__				, SCREAMING_SNAKE_CASE__	):







				"""simple docstring"""





				_SCREAMING_SNAKE_CASE					:			Any							= [[float("""inf"""	) for _ in range(SCREAMING_SNAKE_CASE__	)] for _ in range(SCREAMING_SNAKE_CASE__	)]

				for i in range(SCREAMING_SNAKE_CASE__	):
								for j in range(SCREAMING_SNAKE_CASE__	):
												_SCREAMING_SNAKE_CASE					:			List[str]							= graph[i][j]

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

				_print_dist(SCREAMING_SNAKE_CASE__				, SCREAMING_SNAKE_CASE__	)
				return dist, v


if __name__ == "__main__":
				UpperCAmelCase_						:  str				  =						int(input('Enter number of vertices: '))
				UpperCAmelCase_						:  Union[str, Any]				  =						int(input('Enter number of edges: '))

				UpperCAmelCase_						:  Dict				  =						[[float('inf') for i in range(v)] for j in range(v)]

				for i in range(v):
								UpperCAmelCase_						:  Union[str, 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)
								UpperCAmelCase_						:  int				  =						int(input('Enter source:'))
								UpperCAmelCase_						:  List[str]				  =						int(input('Enter destination:'))
								UpperCAmelCase_						:  List[str]				  =						float(input('Enter weight:'))
								UpperCAmelCase_						:  int				  =						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




