#include using namespace std; int dy[6] = {-1,1,2,1,-1,-2}; int dx[6] = {-2,-2,0,2,2,0}; map,bool> vis; //map,pair> parent; bool valid(int x,int y,int n) { if(x<0 || y<0 || x>=n || y>=n) return false; return true; } void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { // Print the distance along with the sequence of moves. queue, int>,vector> > q; //vis[make_pair(i_start,j_start)] = 1; vector vec; q.push(make_pair(make_pair(make_pair(i_start,j_start),0),vec)); //parent[make_pair(i_start,i_end)] = make_pair(-1,-1); while(!q.empty()) { pair, int>,vector> temp = q.front(); q.pop(); int x = temp.first.first.first; int y = temp.first.first.second; int dis = temp.first.second + 1; if(x == i_end && y == j_end) { cout< vec1; for(int j=0;j