#include <stdio.h>
#include <iostream>
#include <set>
#include <map>
#include <queue>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
 
int A, B;
int T;
 
void BFS()
{
    queue<pair<intstring>> q;
    int visited[10010= {0};
 
    visited[A] = 1;
    q.push({A, ""});
    
    while(!q.empty())
    {
        int now = q.front().first;
        string com = q.front().second;
        q.pop();
        
        if(now == B)
        {
            cout << com << "\n";
            return;
        }
        
        for(int i = 1; i <= 4; i++)
        {
            // D
            if(i == 1)
            {
                int num = now * 2;
                
                if(num > 9999)
                {
                    num %= 10000;
                }
 
                if(visited[num] == 0)
                {
                    visited[num] = 1;
                    q.push({num, com+"D"});
                }
            }
            // S
            else if(i == 2)
            {
                int num = now;
                
                if(num == 0)
                {
                    num = 9999;
                }
                else
                {
                    num -= 1;    
                }
                
                if(visited[num] == 0)
                {
                    visited[num] = 1;
                    q.push({num, com+"S"});
                }
            }
            // L
            else if(i == 3)
            {
                int num = now;
                
                int a = num % 1000;
                int b = num / 1000;
                
                num = a*10 + b;
 
                if(visited[num] == 0)
                {
                    visited[num] = 1;
                    q.push({num, com+"L"});
                }
            }
            // R
            else if(i == 4)
            {
                int num = now;
                
                int a = num / 10;
                int b = num % 10;
                
                num = a + b*1000;
 
                if(visited[num] == 0)
                {
                    visited[num] = 1;
                    q.push({num, com+"R"});
                }
            }
        }
    }
}
    
int main(void)
{
//    freopen("B9019_input.txt", "r", stdin);
    
    ios_base :: sync_with_stdio(false); 
    cin.tie(NULL); 
    cout.tie(NULL);
    
    cin >> T;
    
    for(int n = 1; n <= T; n++)
    {
        cin >> A >> B;
        
        BFS();
    }    
    
    return 0;
}
cs

+ Recent posts