#include using namespace std; bool check(int x,int y,int n) { if(x<0 || x >=n) return false; if(y<0 || y>=n) return false; return true; } void bfs(int x,int y,vector< vector >& visit,vector< vector >& parent) { int n = visit.size(); queue< pair > Q; Q.emplace(x,y); visit[x][y] = 1; while(!Q.empty()) { int i=Q.front().first,j=Q.front().second; int v = visit[i][j]; Q.pop(); if(check(i+2,j,n) && visit[i+2][j]) { visit[i+2][j] = v+1; parent[i+2][j] = 1; //R Q.emplace(i+2,j); } if(check(i-2,j,n) && visit[i-2][j]) { visit[i-2][j] = v+1; parent[i-2][j] = 2; //L Q.emplace(i-2,j); } if(check(i+1,j+2,n) && visit[i+1][j+2]) { visit[i+1][j+2] = v+1; parent[i+1][j+2] = 3; //UR Q.emplace(i+1,j+2); } if(check(i-1,j+2,n) && visit[i-1][j+2]) { visit[i-1][j+2] = v+1; parent[i-1][j+2] = 4; //UL Q.emplace(i-1,j+2); } if(check(i+1,j-2,n) && visit[i+1][j-2]) { visit[i+1][j-2] = v+1; parent[i+1][j-2] = 5; //LR Q.emplace(i+1,j-2); } if(check(i-1,j-2,n) && visit[i-1][j-2]) { visit[i-1][j-2] = v+1; parent[i-1][j-2] = 6; //LL Q.emplace(i-1,j-2); } } } int main() { int n; int p,q,r,s; cin >> n >> p >> q >> r >> s; vector< vector > visit(n); for(int i=0;i > parent(n); for(int i=0;i S; }