#include #include #include #include #include #include #include void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { //assigining 0-UL,1-UR,2-L,3-R,4-LL,5-LR int index=0,R1=i_start,C1=j_start,R2=i_end,C2=j_end; int flag=0; int path[100]; while(flag!=1&&!( R1<0||C1<0||((R1==R2)&&(abs(C1-C2)==1))||((C1==C2)&&(abs(R1-R2)==1)))) { if(R2C1) { R1=R1-2; C1=C1+1; path[index++]=1; } else if(R2>R1&&C2>C1) { R1=R1+2; C1=C1+1; path[index++]=5; } else if(R2R1&&C2=2) { if(R1=2) { if(C1>C2) { C1=C1-2; path[index++]=2; } else { C1=C1+2; path[index++]=3; } } } if(R1==R2&&C1==C2) { flag=1; } } //assigining 0-UL,1-UR,2-L,3-R,4-LL,5-LR //CASE WHEN WE REACHED THE DESTINATION if(R1==R2&&C1==C2) { int iterator=0; printf("%d\n",index); while(iterator!=index) { if(path[iterator]==0) printf("%c%c ",'U','L'); else if(path[iterator]==1) printf("%c%c ",'U','R'); else if(path[iterator]==2) printf("%c ",'L'); else if(path[iterator]==3) printf("%c ",'R'); else if(path[iterator]==4) printf("%c%c ",'L','L'); else printf("%c%c ",'L','R'); iterator++; } return; } else if(( R1<0||C1<0||((R1==R2)&&(abs(C1-C2)==1))||((C1==C2)&&(abs(R1-R2)==1)))) { printf("Impossible"); return; } else printf("Do nothing"); } 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; }