#include #include #include #include #include #include #include int count=0; void printArray(int* arr, int size) { int i; for (i=0; i < size; i++) printf("%d ", arr[i]); //printf("n"); } int arr[100]; 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 index,sc,nos; if(i_start==i_end && j_start==j_end){ //done nos=count; printf("%d\n",nos); //printArray(arr,nos); for(index=0;index=n || j_start>=n || i_start<0 || j_start<0){ printf("Impossible"); }else{ if(i_start>i_end && j_start>=j_end){ //UL arr[count]=1; ++count; printShortestPath(n,i_start-2,j_start-1,i_end,j_end); }else if(i_start>i_end && j_startj_end){ //L arr[count]=3; ++count; printShortestPath(n,i_start,j_start-2,i_end,j_end); }else if(i_start==i_end && j_startj_end){ //LL arr[count]=6; ++count; printShortestPath(n,i_start+2,j_start-1,i_end,j_end); }else{ printf("Impossible"); } } } int main() { int n; scanf("%i", &n); int i_start; int j_start; int i_end; int j_end; scanf("%i %i %i %i", &i_start, &j_start, &i_end, &j_end); printShortestPath(n, i_start, j_start, i_end, j_end); return 0; }