#include using namespace std; int dst[300][300]; int dr[]={-2,-2,0,0,2,2}; int dc[]={-1,1,-2,2,-1,1}; string name[]={"UL","UR","L","R","LL","LR"}; int perm[6]={0,1,3,5,4,2}; // : UL, UR, R, LR, LL, L. int prevv[300][300]; int prevr[300][300]; int prevc[300][300]; void printShortestPath(int n, int sr, int sc, int tr, int tc) { dst[sr][sc]=1; vectorQ; Q.push_back(sr*256+sc); for(int iQ=0;iQ<(int)Q.size();iQ++){ int cr=Q[iQ]/256; int cc=Q[iQ]%256; if(!(cr>=0&&cr=0&&cc=0&&nr=0&&ncans; while(dst[tr][tc]!=1){ int oldr=prevr[tr][tc]; int oldc=prevc[tr][tc]; ans.push_back(name[prevv[tr][tc]]); tr=oldr;tc=oldc; } reverse(ans.begin(),ans.end()); for(string token:ans)cout<> n; int i_start; int j_start; int i_end; int j_end; cin >> i_start >> j_start >> i_end >> j_end; printShortestPath(n, i_start, j_start, i_end, j_end); return 0; }