#include #include #include #include #include #include #include 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. int row_steps=abs((i_start-i_end)/2); if(i_start%2 != i_end%2 || j_end%2 != (j_start+row_steps)%2) printf("Impossible"); else{ int column_diff=abs(j_start-j_end); int column_steps; if(column_diff==0) column_steps=0; else column_steps=abs(column_diff-row_steps)/2; printf("%d\n",column_steps+row_steps); while(i_start != i_end && j_start != j_end) { if(i_endj_start) { printf("UR "); i_start-=2; j_start++; } else if(i_end>i_start && j_end>j_start) { while(column_steps!=0) { printf("R "); column_steps--; j_start+=2; } printf("LR "); i_start+=2; j_start++; } else { printf("LL "); i_start+=2; j_start--; } } if(i_start==i_end) { while(j_start>j_end) { j_start-=2; printf("L "); } while(j_starti_end) { printf("UL UR "); i_start-=4; } while(i_starti_end) { printf("UL UR "); i_start-=4; } while(i_starti_end) { printf("UR UL "); i_start-=4; } while(i_start