#include #include #include #include using namespace std; string fin_path_vertex=""; int flag=0; struct cell { int x; int y; int dis; string path_vertex; cell() {} cell(int x, int y, int dis,string path_vertex) : x(x), y(y), dis(dis) , path_vertex(path_vertex) {} }; int boundary_in(int x,int y,int n) { if(x>=0 && x<=n-1 && y>=0 && y<=n-1) { return 1; } else { return 0; } return 0; } int main() { // your code goes here string dir; int n,min_moves=0; cin>>n; cell temp; int source_i,source_f,dest_i,dest_f; cin>>source_i>>source_f>>dest_i>>dest_f; if(source_i-dest_i>0) { dir="up"; } else if(source_i-dest_i<0) { dir="down"; } queueknight_queue; int visited[500][500]={0}; int dx[]={-2,-2,0,+2,+2,0}; int dy[]={-1,+1,+2,+1,-1,-2}; knight_queue.push(cell(source_i,source_f,0,"")); int l=0; while(!knight_queue.empty()) { temp=knight_queue.front(); //cout<"; //visited[temp.x][temp.y]=1; knight_queue.pop(); if(temp.x==dest_i && temp.y==dest_f) { cout<