#include #include #include using namespace std; int siz,hi,hj,xi,xj; vector z[211][211]; int zz[211][211]; char wind; int dr[]={-2,-2,0,2,2,0}; int dc[]={-1,1,2,1,-1,-2}; string answers[]={"UL","UR","R","LR","LL","L"}; bool inside(int i, int j){ return (i>=0 && i=0 && j> siz >> hi >> hj >> xi >> xj; queue< pair > x; zz[hi][hj]=0; x.push(make_pair(hi,hj)); while(!x.empty()){ int cur1=x.front().first,cur2=x.front().second; x.pop(); for(int i=0; i<6; i++){ if(inside(cur1+dr[i],cur2+dc[i]) && z[cur1+dr[i]][cur2+dc[i]].size()==0){ x.push(make_pair(cur1+dr[i],cur2+dc[i])); z[cur1+dr[i]][cur2+dc[i]]=z[cur1][cur2]; z[cur1+dr[i]][cur2+dc[i]].push_back(answers[i]); zz[cur1+dr[i]][cur2+dc[i]]=zz[cur1][cur2]+1; } } if(!z[xi][xj].size()==0){ break; } } if(!z[xi][xj].size()==0){ cout << zz[xi][xj] << endl; for(int i=0; i