#include using namespace std; bool safe(int i,int j,int n) { if(i<0||j<0) return false; if(i>=n||j>=n) return false; return true; } void printShortestPath(int n, int is, int js, int ie, int je) { if(abs(is-ie)%2==1) { cout<<"Impossible"; return; } int a[6]; memset(a,0,sizeof(a)); while(ie>is) { if(je>=js) { if(safe(is+2,js+1,n)) { a[3]++; is=is+2; js=js+1; } } else { if(safe(is+2,js-1,n)) { a[4]++; is=is+2; js=js-1; } } } while(iejs) { if(safe(is,js+2,n)) { a[2]++; js=js+2; } else break; } if(is==ie&&je==js) { long sum=0; for(int i=0;i<6;i++) sum+=a[i]; cout<> n; int i_start; int j_start; int i_end; int j_end; cin >> i_start >> j_start >> i_end >> j_end; printShortestPath(n, i_start, j_start, i_end, j_end); return 0; }