#include #include #include #include #include #include #include void printShortestPath(int n, int is, int js, int ie, int je) { // Print the distance along with the sequence of moves. if(is==ie){ int t=(js>je)?js-je:je-js; if(t%2==0){ printf("%d\n",t/2); for(int i=0;ijs;i++){ printf("R "); } for(int i=0;ije;i++){ printf("L "); } } else{ printf("Impossible."); } } else if(js==je){ int t=(is>ie)?is-ie:ie-is; if(t%4==0 && is0)?0:(t/4)-(n-js-1); for(int i=0;iie){ printf("%d\n",t/2); int g=(js>t/4)?0:(t/4)-js; for(int i=0;iie&&js>je){ int x=is-ie; int y=js-je; if(x%2==0&&(y-(x/2))%2==0){ int t1=0; for(;y-(2*t1)>(x/2);){ t1++; } if(((x/2)-(y-(2*t1)))%2==0){ printf("%d\n",t1+(x/2)); int ty=je+(2*t1); for(;ty!=js;){ printf("UL "); js-=1; is-=2; } if(js==je){ int t=(is>ie)?is-ie:ie-is; if(t%4==0 && is>ie){ printf("%d\n",t/2); int g=(js>t/4)?0:(t/4)-js; for(int i=0;i