42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import sys
|
|
from collections import deque
|
|
|
|
input = sys.stdin.readline
|
|
|
|
def convert_4length(s) :
|
|
return "000" + s if len(s) == 1 else "00" + s if len(s) == 2 else "0" + s if len(s) == 3 else s
|
|
|
|
def DSLR(order,numString) :
|
|
if order == 'D' :
|
|
return convert_4length(str(int(numString)*2 % 10000))
|
|
elif order == 'S' :
|
|
return convert_4length(str(int(numString) - 1 if int(numString) > 0 else 9999))
|
|
elif order == 'L' :
|
|
return numString[1] + numString[2] + numString[3] + numString[0]
|
|
elif order == 'R' :
|
|
return numString[3] + numString[0] + numString[1] + numString[2]
|
|
|
|
def BFS(a, b) :
|
|
a = convert_4length(a)
|
|
b = convert_4length(b)
|
|
visited = [False for _ in range(10000)]
|
|
q = deque()
|
|
q.append((a, ""))
|
|
|
|
while len(q) :
|
|
currentValue, currentOrderStream = q.popleft()
|
|
|
|
for o in "DSLR" :
|
|
nextValue = DSLR(o,currentValue)
|
|
nextOrderStream = currentOrderStream + o
|
|
|
|
if nextValue == b :
|
|
return nextOrderStream
|
|
|
|
if not visited[int(nextValue)] :
|
|
visited[int(nextValue)] = True
|
|
q.append((nextValue, nextOrderStream))
|
|
|
|
for _ in range(int(input())) :
|
|
A, B = input().split()
|
|
print(BFS(A, B)) |