#include using namespace std; int mp[205][205]; int dx[6]={-2,-2,0,2,2,0}; int dy[6]={-1,1,2,1,-1,-2}; vectorans; void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { queue>q; q.push(make_pair(i_start,j_start)); int len=0; memset(mp,-1,sizeof(mp)); mp[i_start][j_start]=0; while(!q.empty()) { int si=q.size(); while(si--) { int nx=q.front().first; int ny=q.front().second; q.pop(); if(nx==i_end&&ny==j_end) { cout<=n||ty<0||ty>=n) continue; if(mp[tx][ty]!=-1) continue; mp[tx][ty]=i; q.push(make_pair(tx,ty)); } } len++; } cout<<"Impossible"<> 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; }