#include using namespace std; string printNextMove(int &i_start, int &j_start, int &i_end, int &j_end) { int h_diff = j_start - j_end; int v_diff = i_start - i_end; string s = ""; //cout< 1) && (h_diff > 0)) { s = "UL "; i_start -= 2; j_start -= 1; } else if ((v_diff > 1) && (h_diff < 0)) { s = "UR "; i_start -= 2 ; j_start += 1; } else if ((v_diff == 0) && (h_diff < 0)) { s = "R "; j_start += 2; } else if ((v_diff < -1) && (h_diff < 0)) { s = "LR "; j_start += 1; i_start += 2; } else if ((v_diff < -1) && (h_diff > 0)) { s = "LL "; i_start += 2; j_start -= 1; } else if ((v_diff < -1) && (h_diff == 0)) { s = "LR "; j_start += 1; i_start += 2; } else if ((v_diff > 1) && (h_diff == 0)) { s = "UL "; i_start -= 2; j_start -= 1; } else { s = "L "; j_start -= 2; } return s; } void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { int h_diff = abs(j_start - j_end); int v_diff = abs(i_start - i_end); if ((((v_diff)%2) != 0) || ((v_diff) == 0) && (((h_diff)%2) != 0) || ((v_diff) == (h_diff)) || (((h_diff + (v_diff/2))%2) != 0)) { 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; }