#include using namespace std; bool verificacion (int yi, int xi, int yf, int xf) { //0 impos, 1 pos bool salida=0; if ((((int)abs(yi-yf))%2) !=0) salida=0; else salida=1; if(salida==1) { bool tipo_fila; if(yi==yf) tipo_fila=0; else { if((((int)abs(yi-yf))%4) ==0) tipo_fila=0; else tipo_fila=1; } if ((((int)abs(xi-xf))%2) == 0) { if(tipo_fila==0) salida=1; else salida=0; } else { if(tipo_fila==0) salida=0; else salida=1; } } return salida; } 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. string salida_movs; int salida_cont=0; //verificacion if((verificacion(i_start,j_start,i_end,j_end)) == 0) { salida_movs="Impossible"; cout<=0.2 && ang <=90 && x_dif<=0 && y_dif<=0) { mov_act="UL"; y_act=y_act-2; x_act=x_act-1; } else if(ang>=0.2 && ang <=90 && x_dif>=0 && y_dif<=0) { mov_act="UR"; y_act=y_act-2; x_act=x_act+1; } else if(ang>=0 && ang <=0.2 && x_dif>=0) { mov_act="R"; y_act=y_act; x_act=x_act+2; } else if(ang>=0.2 && ang <=90 && x_dif>=0 && y_dif>=0) { mov_act="LR"; y_act=y_act+2; x_act=x_act+1; } else if(ang>=0.2 && ang <=90 && x_dif<=0 && y_dif>=0) { mov_act="LL"; y_act=y_act+2; x_act=x_act-1; } else { mov_act="L"; y_act=y_act; x_act=x_act-2; } if(primero==1) salida_movs.append(" "); else primero=1; salida_movs.append(mov_act); salida_cont++; } } while(!(y_dif==0 && x_dif==0)); cout<> 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; }