#include #include #include #include #include using namespace std; struct node{ int i=(-1); int j=(-1); int parenti; int parentj; bool visit=false; string reach="NA"; }; struct index{ int i=(-1); int j=(-1); string type="NA"; }; vector adjacent(int n,vector>& matrix,vector& next,int i,int j){ vector adj; struct index temp; if(j-1>=0 && (i-2)>=0 && !matrix[i-2][j-1].visit){ matrix[i-2][j-1].visit=true; temp.i=(i-2); temp.j=(j-1); temp.type="UL"; adj.emplace_back(temp); next.emplace_back(temp); } if(j+1=0 && !matrix[i-2][j+1].visit){ matrix[i-2][j+1].visit=true; temp.i=(i-2); temp.j=(j+1); temp.type="UR"; adj.emplace_back(temp); next.emplace_back(temp); } if(j+2=0 && (i+2)=0 && !matrix[i][j-2].visit){ matrix[i][j-2].visit=true; temp.i=(i); temp.j=(j-2); temp.type="L"; adj.emplace_back(temp); next.emplace_back(temp); } return adj; } void findShortest(vector>& matrix,int n,int starti,int startj,int stopi,int stopj){ matrix[starti][startj].visit=true; vector frontier; struct index ind; ind.i=starti; ind.j=startj; frontier.emplace_back(ind); int path=0; while(frontier.size()>0){ //cout<<"Bandar"< next; path++; for(int i=0;i adj=adjacent(n,matrix,next,current.i,current.j); //cout<>n; int starti=0,startj=0,stopi=0,stopj=0; cin>>starti>>startj>>stopi>>stopj; vector> matrix(n); for(int i=0;i temp(n); matrix[i]=temp; } findShortest(matrix,n,starti,startj,stopi,stopj); //cout<<"Done"< ans; //cout<<"Check this for once "<=0;i--){ cout<