|
@@ -0,0 +1,53 @@
|
|
|
|
|
+"""Задача Код"""
|
|
|
|
|
+
|
|
|
|
|
+nums = []
|
|
|
|
|
+approved_numbers = []
|
|
|
|
|
+matrix = [
|
|
|
|
|
+ [[0], [3], [1], [7], [5], [9], [8], [6], [4], [2]],
|
|
|
|
|
+ [[7], [0], [9], [2], [1], [5], [4], [8], [6], [3]],
|
|
|
|
|
+ [[4], [2], [0], [6], [8], [7], [1], [3], [5], [9]],
|
|
|
|
|
+ [[1], [7], [5], [0], [9], [8], [3], [4], [2], [6]],
|
|
|
|
|
+ [[6], [1], [2], [3], [0], [4], [5], [9], [7], [8]],
|
|
|
|
|
+ [[3], [6], [7], [4], [2], [0], [9], [5], [8], [1]],
|
|
|
|
|
+ [[5], [8], [6], [9], [7], [2], [0], [1], [3], [4]],
|
|
|
|
|
+ [[8], [9], [4], [5], [3], [6], [2], [0], [1], [7]],
|
|
|
|
|
+ [[9], [4], [3], [8], [6], [1], [7], [2], [0], [5]],
|
|
|
|
|
+ [[2], [5], [8], [1], [4], [3], [6], [7], [9], [0]],
|
|
|
|
|
+]
|
|
|
|
|
+
|
|
|
|
|
+while True:
|
|
|
|
|
+ try:
|
|
|
|
|
+ num = input().strip()
|
|
|
|
|
+ nums.append(num)
|
|
|
|
|
+ except EOFError:
|
|
|
|
|
+ break
|
|
|
|
|
+
|
|
|
|
|
+def find_k(num: str) -> int:
|
|
|
|
|
+ k = 0
|
|
|
|
|
+ for s in range(len(num)):
|
|
|
|
|
+ d = int(num[s])
|
|
|
|
|
+ k = matrix[k][d][0]
|
|
|
|
|
+ return k
|
|
|
|
|
+
|
|
|
|
|
+for i in range(len(nums)):
|
|
|
|
|
+ f = 0
|
|
|
|
|
+ s = 1
|
|
|
|
|
+ num = nums[i]
|
|
|
|
|
+ k = find_k(num)
|
|
|
|
|
+ original_list = list(num)
|
|
|
|
|
+ while k != 0:
|
|
|
|
|
+ reverse_list = original_list.copy()
|
|
|
|
|
+ if 0 <= f < len(num) and 0 < s < len(num):
|
|
|
|
|
+ reverse_list[f], reverse_list[s] = original_list[s], original_list[f]
|
|
|
|
|
+ else:
|
|
|
|
|
+ raise ValueError(f"Число {num} не имеет решения")
|
|
|
|
|
+ reversed_num = "".join(reverse_list)
|
|
|
|
|
+ k = find_k(reversed_num)
|
|
|
|
|
+ num = reversed_num
|
|
|
|
|
+ f+=1
|
|
|
|
|
+ s+=1
|
|
|
|
|
+ approved_numbers.append(num)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+with open("output.dat", "w") as file:
|
|
|
|
|
+ file.write("\n".join(approved_numbers))
|