#include using namespace std; #define f first #define s second #define mp make_pair int N,A,B,C,D; int x[] = {-2,-2,0,+2,+2,0}; int y[] = {-1,+1,+2,+1,-1,-2}; int mat[205][205] = {{0}}; bool visited[205][205]; int parent[205][205]; bool isvalid(int i,int j) { return (i >= 0 && i < N) && (j >=0 && j < N); } void bfs() { int a = A, b= B; queue> Q; Q.push(mp(a,b)); mat[a][b] = 0; //Q.push(mp(-1,-1)); while(!Q.empty()) { pair foo = Q.front(); Q.pop(); a = foo.f; b = foo.s; visited[a][b] = true; for(int i = 0;i<6;++i) { int p = a+x[i],q = b+y[i]; if(isvalid(p,q) && !(visited[p][q])) { visited[p][q] = true; Q.push(mp(p,q)); mat[p][q] = mat[a][b] + 1; parent[p][q] = i+1; } } } } int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ cin>>N; cin>>A>>B>>C>>D; int X = A, Y = B; memset(visited,0,sizeof(visited)); //cout<