#include #define TRUE 1 #define FALSE 0 int CheckReachable(int,int,int,int); int main(){ int BoardLength; int CurrentX, CurrentY; int FinalX, FinalY; int Reachable,c,d; int StoreMovement[150] = {0}; scanf("%d", &BoardLength); scanf("%d %d %d %d", &CurrentX, &CurrentY, &FinalX, &FinalY); Reachable = CheckReachable(CurrentX,CurrentY,FinalX,FinalY); if (Reachable == 1){ c = 0; while ( !((CurrentX==FinalX) && (CurrentY==FinalY)) ){ if (CurrentX == FinalX){ if (CurrentY < FinalY){ //Move R CurrentY = CurrentY + 2; StoreMovement[c] = 1; } else { //Move L CurrentY = CurrentY - 2; StoreMovement[c] = 0; } } else if (CurrentX < FinalX){ if (CurrentY < FinalY){ //Move LR CurrentY = CurrentY + 1; CurrentX = CurrentX + 2; StoreMovement[c] = 3; } else if (CurrentY > FinalY){ //Move LL CurrentY = CurrentY - 1; CurrentX = CurrentX + 2; StoreMovement[c] = 2; } else { if (CurrentY == 0){ //Move LR CurrentY = CurrentY + 1; CurrentX = CurrentX + 2; StoreMovement[c] = 3; } else { //Move LL CurrentY = CurrentY - 1; CurrentX = CurrentX + 2; StoreMovement[c] = 2; } } } else if (CurrentX > FinalX){ if (CurrentY < FinalY){ //Move UR CurrentY = CurrentY + 1; CurrentX = CurrentX - 2; StoreMovement[c] = 5; } else if (CurrentY > FinalY){ //Move UL CurrentY = CurrentY -1; CurrentX = CurrentX -2; StoreMovement[c] = 4; } else { if (CurrentY == 0){ //Move UR CurrentY = CurrentY + 1; CurrentX = CurrentX - 2; StoreMovement[c] = 5; } else { //Move UL CurrentY = CurrentY -1; CurrentX = CurrentX -2; StoreMovement[c] = 4; } } } c++; } printf("%d\n", c); for (d=0;d