#include #include #include #include #include #include #include int mat[200][200]; int vis[200][200]; int xmov[6]={-2,-2,0,2,2,0}; int ymov[6]={-1,1,2,1,-1,-2}; int que[40000]; int head=-1; int tail=-1; int min_cnt=50000; int isvalid(int n,int x,int y,int cnt) { if(x>=0 && x=0 && y=0 && x=0 && ycnt) { min_cnt=cnt; mat[new_i][new_j]=i; //printf("mat[%d][%d]= %d\n",new_i,new_j,mat[new_i][new_j]); } break; } else { mat[new_i][new_j]=i; //printf("mat[%d][%d]= %d\n",new_i,new_j,mat[new_i][new_j]); printShortestPath(n,cnt+1,new_i,new_j,i_end,j_end); } } } } int main() { int n; scanf("%i", &n); int i_start; int j_start; int i_end; int j_end; int i,j; int c=0; int arr[500]={0}; char *ptr[]={"UL","UR","R","LR","LL","L"}; scanf("%i %i %i %i", &i_start, &j_start, &i_end, &j_end); printShortestPath(n,1, i_start, j_start, i_end, j_end); if(min_cnt<50000) { printf("%d\n",min_cnt ); #if 1 for(i=0;i