
from __future__ import annotations





class      UpperCamelCase_			:







						'''simple docstring'''



						def __init__( self       :Dict		,						lowerCAmelCase__       :int    )     ->None:
										lowercase						    =			vertices
										lowercase						    =			[[0] * vertices for _ in range(lowerCAmelCase__    )]





						def 					SCREAMING_SNAKE_CASE( self       :Union[str, Any]		,						lowerCAmelCase__       :list[int]    )     ->None:
										print("Vertex \t Distance from Source"    )
										for vertex in range(self.vertices    ):
														print(lowerCAmelCase__		,						"\t\t"		,						distances_from_source[vertex]    )





						def 					SCREAMING_SNAKE_CASE( self       :Any		,						lowerCAmelCase__       :list[int]		,						lowerCAmelCase__       :list[bool]    )     ->int:
										lowercase						    =			1E7
										lowercase						    =			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:
																		lowercase						    =			distances_from_source[vertex]
																		lowercase						    =			vertex
										return min_index





						def 					SCREAMING_SNAKE_CASE( self       :Any		,						lowerCAmelCase__       :int    )     ->None:
										lowercase						    =			[int(1E7    )] * self.vertices  # distances from the source
										lowercase						    =			0
										lowercase						    =			[False] * self.vertices

										for _ in range(self.vertices    ):
														lowercase						    =			self.minimum_distance(lowerCAmelCase__		,						lowerCAmelCase__    )
														lowercase						    =			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]
																		):
																						lowercase						    =			distances[u] + self.graph[u][v]

										self.print_solution(lowerCAmelCase__    )


if __name__ == "__main__":
						_snake_case			:       Union[str, Any]      =						Graph(9)
						_snake_case			:       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)




from __future__ import annotations

import random
import string





class      UpperCamelCase_			:







						'''simple docstring'''



						def __init__( self       :Dict		,						lowerCAmelCase__       :str | None = None    )     ->None:
										lowercase						    =			passcode or self.__passcode_creator()
										lowercase						    =			self.__make_key_list()
										lowercase						    =			self.__make_shift_key()





						def __str__( self       :Dict    )     ->str:
										return "".join(self.__passcode    )





						def 					SCREAMING_SNAKE_CASE( self       :str		,						lowerCAmelCase__       :list[int]    )     ->list[int]:
										for i in range(1		,						len(lowerCAmelCase__    )		,						2    ):
														iterlist[i] *= -1
										return iterlist





						def 					SCREAMING_SNAKE_CASE( self       :int    )     ->list[str]:
										lowercase						    =			string.ascii_letters + string.digits
										lowercase						    =			[random.choice(lowerCAmelCase__    ) for _ in range(random.randint(10		,						20    )    )]
										return password





						def 					SCREAMING_SNAKE_CASE( self       :Union[str, Any]    )     ->list[str]:
										lowercase						    =			(
										    string.ascii_letters + string.digits + string.punctuation + " \t\n"
										)

										lowercase						    =			[]

										# creates points known as breakpoints to break the key_list_options at those
										# points and pivot each substring
										lowercase						    =			sorted(set(self.__passcode    )    )
										lowercase						    =			[]

										# algorithm for creating a new shuffled list, keys_l, out of key_list_options
										for i in key_list_options:
														temp_list.extend(lowerCAmelCase__    )

														# checking breakpoints at which to pivot temporary sublist and add it into
														# keys_l
														if i in breakpoints or i == key_list_options[-1]:
																		keys_l.extend(temp_list[::-1]    )
																		temp_list.clear()

        # returning a shuffled keys_l to prevent brute force guessing of shift key
										return keys_l





						def 					SCREAMING_SNAKE_CASE( self       :Optional[int]    )     ->int:
										lowercase						    =			sum(self.__neg_pos([ord(lowerCAmelCase__    ) for x in self.__passcode]    )    )
										return num if num > 0 else len(self.__passcode    )





						def 					SCREAMING_SNAKE_CASE( self       :str		,						lowerCAmelCase__       :str    )     ->str:
										lowercase						    =			""

										# decoding shift like Caesar cipher algorithm implementing negative shift or
										# reverse shift or left shift
										for i in encoded_message:
														lowercase						    =			self.__key_list.index(lowerCAmelCase__    )
														decoded_message += self.__key_list[
														    (position - self.__shift_key) % -len(self.__key_list    )
														]

										return decoded_message





						def 					SCREAMING_SNAKE_CASE( self       :Dict		,						lowerCAmelCase__       :str    )     ->str:
										lowercase						    =			""

										# encoding shift like Caesar cipher algorithm implementing positive shift or
										# forward shift or right shift
										for i in plaintext:
														lowercase						    =			self.__key_list.index(lowerCAmelCase__    )
														encoded_message += self.__key_list[
														    (position + self.__shift_key) % len(self.__key_list    )
														]

										return encoded_message




def    __snake_case       (  __magic_name__ = "Hello, this is a modified Caesar cipher"	):







				'''simple docstring'''


				lowercase						    =			ShuffledShiftCipher()
				return cipa.decrypt(cipa.encrypt(__magic_name__	)	)


if __name__ == "__main__":
						import doctest

						doctest.testmod()
