#include #include #include #include #include #include using namespace std; struct pointer { int x; int y; }; struct queueNode { pointer pt; int dist; }; int rowNum[]={-2,-2,0,2,2,0}; int colNum[]={-1,1,2,1,-1,-2}; bool visitd[200][200]; string vals[]={"UL","UR","R","LR","LL","L"}; vector fpath; int move(int mat[200][200],pointer src,pointer dest,int n) { memset(visitd,false,sizeof(visitd)); visitd[src.x][src.y]=true; queue que; queueNode s={src,0}; que.push(s); vector > path; path.push_back({"S"}); while(!que.empty()) { queueNode curr = que.front(); pointer pt = curr.pt; // If we have reached the destination cell, // we are done if (pt.x == dest.x && pt.y == dest.y) { fpath=path.front(); return curr.dist; //cout<<"^^^"< temp=path.front(); path.erase(path.begin()); //cout<<"+=>"<=0 && row=0 && col temp2=temp; temp2.push_back(vals[i]); path.push_back(temp2); } } } return INT_MAX; } int main() { int n,i,j,mat[200][200]={0}; vector str; int is,js,ie,je; cin>>n; cin>>is>>js; cin>>ie>>je; mat[is][js]=1; pointer src={is,js}; pointer dest={ie,je}; int dist=move(mat,src,dest,n); if(dist==INT_MAX) cout<<"Impossible"; else { cout<