#include using namespace std; bool vis[201][201]; map,pair> par; int dx[]={-1,1,2,1,-1,-2}; int dy[]={2,2,0,-2,-2,0}; void finish(int x2, int y2, int lvl){ string pth[]={"UL","UR","R","LR","LL","L"}; map,int> xp; for(int i=0;i<6;i++) xp[make_pair(dx[i],dy[i])]=i; pair cur,df; cur=make_pair(x2,y2); cout << lvl << endl; for(int i=0;i cur=make_pair(x1,y1); queue> q; vector path; q.push(cur); par[cur]=make_pair(-1,-1); vis[x1][y1]=1; while (!q.empty()){ int sz=q.size(); lvl++; while (sz--){ int xr=q.front().first,yr=q.front().second; q.pop(); if (xr==x2 && yr==y2) finish(x2, y2, lvl); for(int i=0;i<6;i++){ cur.first=xr+dx[i]; cur.second=yr+dy[i]; if (cur.first>=0 && cur.second>=0 && cur.first> 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; }