https://www.acmicpc.net/problem/9019
import java.util.*
fun main() = with(System.`in`.bufferedReader()){
val n = readLine().toInt()
for(i in 1..n){
val (a,b) = readLine().split(" ").map{it.toInt()}
val visit = BooleanArray(10000){false}
val regist = Array(10000){""}
bfs(a,b, visit, regist)
}
}
fun bfs(start : Int, target : Int, visit : BooleanArray, regist : Array<String>){
val q = LinkedList<Int>()
q.add(start)
visit[start] = true
while(!q.isEmpty()){
val current = q.poll()
if(current==target){
println(regist[target])
return
}
val D = (current*2)%10000
val S = if(current==0) 9999 else current-1
val L = (current%1000) * 10 + current/1000
val R = (current%10) * 1000 + current/10
if(!visit[D]){
q.add(D);
visit[D]=true;
regist[D]=regist[current] + "D";
}
if(!visit[S]){
q.add(S);
visit[S]=true;
regist[S]=regist[current] + "S";
}
if(!visit[L]){
q.add(L);
visit[L]=true;
regist[L]=regist[current] + "L";
}
if(!visit[R]){
q.add(R);
visit[R]=true;
regist[R]=regist[current] + "R";
}
}
}