Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def split_strings(mas, ans, row, row_ans, col_ans):
- result = []
- prevIdx = []
- isSplited = False
- for index, string in enumerate(mas):
- if len(string) > 1:
- for i in range(1, len(string)):
- num1 = int(string[:i])
- num2 = int(string[i:])
- if num1 - num2 != 0:
- tmp = abs(num1 - num2)
- result.append(str(tmp))
- prevIdx.append(index)
- if tmp < ans:
- row_ans = row
- col_ans = len(result) - 1
- ans = tmp
- isSplited = True
- return result, prevIdx, ans, row_ans, col_ans, isSplited
- t = int(input())
- for i in range(t):
- s = input()
- mas = [[int(s), -1]]
- tmpSplit = [s]
- tmpSplitIndexes = []
- row_ans = 0
- col_ans = 0
- row = 0
- ans = int(s)
- if len(s) == 1:
- print(1, s)
- continue
- while True:
- row += 1
- tmpSplit, tmpSplitIndexes, ans, row_ans, col_ans, isSplited = split_strings(tmpSplit, ans, row, row_ans, col_ans)
- if isSplited:
- tmp = []
- for j in range(len(tmpSplit)):
- tmp.append([int(tmpSplit[j]), tmpSplitIndexes[j]])
- mas.append(tmp)
- else:
- break
- r = row_ans - 1
- path = [ans]
- idx = mas[row_ans][col_ans][1]
- while r > 0:
- path.append(mas[r][idx][0])
- idx = mas[r][idx][1]
- r -= 1
- path.append(mas[0][0])
- print(row_ans + 1, *path[::-1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement