| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- """Задача Код"""
- 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))
|