#include using namespace std; bool visit[100][100]; int cost[100][100]; int n,a,b; void initialize(){ for(int i=0;i=0) if(y+dy=0) return true; return false; } void rec(int x,int y,int curr){ if(x==n-1&&y==n-1){ if(visit[x][y]){ cost[x][y]=min(cost[x][y],curr); } else cost[x][y]=curr; } if(visit[x][y]) return; visit[x][y]=true; if(cost[x][y]==-1) cost[x][y]=curr; if(test(x,y,a,b)){ rec(x+a,y+b,curr+1); } if(test(x,y,-a,b)){ rec(x-a,y+b,curr+1); } if(test(x,y,-a,-b)){ rec(x-a,y-b,curr+1); } if(test(x,y,a,-b)){ rec(x+a,y-b,curr+1); } if(test(x,y,b,a)){ rec(x+b,y+a,curr+1); } if(test(x,y,-b,a)){ rec(x-b,y+a,curr+1); } if(test(x,y,-b,-a)){ rec(x-b,y-a,curr+1); } if(test(x,y,b,-a)){ rec(x+b,y-a,curr+1); } } int main(){ cin >> n; for(int i=1;i