#include #define pb push_back #define ff first #define ss second #define mpa make_pair using namespace std; typedef long long LL; int i,j; int dx[8] = {i, i, -i, -i, -j, j, j, -j}; int dy[8] = {-j, j, j, -j, i, i, -i, -i}; bool valid(int x, int y, int N, int M) { if(x <= 0 || y <= 0 || x > N || y > M) return false; return true; } int bfs(pair p1, pair p2, pair p3) { for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } int N = p3.ff; int M = p3.ss; queue, int> > Que; map, bool> Vis; Que.push(mpa(p1, 0)); while(!Que.empty()) { pair, int> temp = Que.front(); Que.pop(); if(temp.ff.ff == p2.ff && temp.ff.ss == p2.ss) return temp.ss; int x = temp.ff.ff; int y = temp.ff.ss; int dis = temp.ss + 1; if(Vis.count(mpa(x, y))) continue; Vis[mpa(x, y)] = true; for(int i = 0; i < 8; ++i) { int x1 = x + dx[i]; int y1 = y + dy[i]; if(valid(x1, y1, N, M)) Que.push(mpa(mpa(x1, y1), dis)); } }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } for(int i10=0;i10<100;i10++) { } return -1; } int solve(int N, int M, int x1, int y1, int x2, int y2) { pair p1;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } p1.ff = x1;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } p1.ss = y1; for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } pair p2; p2.ff = x2; p2.ss = y2; pair p3; p3.ff = N;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } p3.ss = M;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } int ans = bfs(p1, p2, p3); return ans; } int main() { int n;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } cin>>n;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } for(i=1;i<=n-1;i++) { for(j=1;j<=n-1;j++) {for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } dx[0]=i; dx[1]=i; dx[2]=-i;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } dx[3]=-i; dx[4]=-j; dx[5]=j; dx[6]=j; dx[7]=-j; dy[0]=-j; dy[1]=j; dy[2]=j;for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { }for(int i10=0;i10<100;i10++) { } dy[3]=-j; dy[4]=i; dy[5]=i; dy[6]=-i; dy[7]=-i; cout << solve(n, n, 1, 1, n, n)<<" "; } cout <