#include #define mp make_pair #define F first #define S second using namespace std; string parent[201][201]; int level[201][201]; bool visit[201][201]; map > m1; pair > m[]={ {"UL",{-2,-1}},{"UR",{-2,1}},{"R",{0,2}}, {"LR",{2,1}}, {"LL",{2,-1}},{"L",{0,-2}} }; int printShortestPath( int n,int x, int y, int i_end, int j_end) { queue > q; visit[x][y]=true; level[x][y]=0; parent[x][y]="start"; q.push(mp(x,y)); while(!q.empty()) { pair tem=q.front(); x=tem.F,y=tem.S; q.pop(); for(auto it:m) { int x0=x+it.S.F,y0=y+it.S.S; if(x0>=0&&x0=0&&y0> n; memset(visit,false,sizeof(visit)); m1["UL"]={-2,-1}; m1["UR"]={-2,1}; m1["LR"]={2,1}; m1["LL"]={2,-1}; m1["L"]={0,-2}; m1["R"]={0,2}; int i_start; int j_start; int i_end; int j_end; cin >> i_start >> j_start >> i_end >> j_end; if(printShortestPath(n,i_start, j_start, i_end, j_end)) { cout< v; while(level[x][y]!=0) { v.push_back(parent[x][y]); int x0=x-m1[parent[x][y]].F,y0=y-m1[parent[x][y]].S; x=x0,y=y0; } int sz=v.size(); for(int i=sz-1;i>=0;i--) cout<