#include <bits/stdc++.h>
using namespace std;
#define ll long long
string A[11];
ll n,sx,sy,fx,fy;
ll minn = LONG_LONG_MAX;
ll book[11][11][11][11];
bool f = false;
void dfs(ll x_1,ll y_1,ll x_2,ll y_2,ll step)
{
// printf("%lld %lld %lld %lld %lld\n",x_1,y_1,x_2,y_2,step);
if (x_1 < 1 || x_1 > n || y_1 < 1 || y_1 > n) return ;
if (x_2 < 1 || x_2 > n || y_2 < 1 || y_2 > n) return ;
if (A[x_1][y_1] == '1' || A[x_2][y_2] == '1') return ;
if (book[x_1][y_1][x_2][y_2]) return ;
book[x_1][y_1][x_2][y_2] = 1;
if (x_1 == x_2 && y_1 == y_2)
{
minn = min(minn,step);
f = 1;
return ;
}
for (ll xx = -1; xx <= 1; xx ++)
{
for (ll yy = -1; yy <= 1; yy ++)
{
for (ll xx1 = -1; xx1 <= 1; xx1 ++)
{
for (ll yy1 = -1; yy1 <= 1; yy1 ++)
{
for (ll xx2 = -1; xx2 <= 1; xx2 ++)
{
for (ll yy2 = -1; yy2 <= 1; yy2 ++)
{
if ((xx != yy && xx != 0 && yy != 0) || (xx1 != yy1 && xx1 != 0 && yy1 != 0) || (xx2 != yy2 && xx2 != 0 && yy2 != 0))
if (x_2 + xx1 >= 1 && x_2 + xx1 <= n && y_2 + yy1 >= 1 && y_2 + yy1 <= n) dfs(x_1 + xx,y_1 + yy,x_2 + xx1 + xx2,y_2 + yy1 + yy2,step + 1);
}
}
}
}
}
}
return ;
}
int main()
{
scanf("%lld%lld%lld%lld%lld",&n,&sx,&sy,&fx,&fy);
for (ll i = 1; i <= n; i ++) cin>>A[i],A[i] = ' ' + A[i];
dfs(sx,sy,fx,fy,0);
if (f) printf("%lld",minn);
else printf("inf");
return 0;
}
若回复请at一下我awa