#include using namespace std; #define mx 10001 int i_start; int j_start; int i_end; int j_end; int grid[301][301]; bool pathGrid[301][301]; void visitGrid(int n,int start,int end,int cost){ if(start<0 || start>n || end<0 || end>n){ return; } int mn = min(cost,grid[start][end]); if(mn=0 && start-2=0 && end-1=0 && start-2=0 && end+1=0 && end+2=0 && start+2=0 && end+1=0 && start+2=0 && end-1=0 && end-2ans; void printGrid(int start,int end,int x,int y,int cost,int n){ if(start==x && end==y){ reached = true; return; } if(!pathGrid[start][end] || reached){ return; } if((end+2>=0 && end+2=0 && start-2=0 && end+1=0 && start-2=0 && end-1=0 && end-2=0 && start+2=0 && end-1=0 && start+2=0 && end+1=0;i--){ cout<> n; cin >> i_start >> j_start >> i_end >> j_end; for(int i=0;i<=300;i++){ for(int j=0;j<=300;j++){ grid[i][j] = mx; pathGrid[i][j] = false; } } printShortestPath(n, i_start, j_start, i_end, j_end); return 0; }