无法输出,代码如下
#include<bits/stdc++.h>
typedef long long ll;
#define pb(x) push_back(x)
#define pf(x) push_front(x)
#define eb(x) emplace_back(x)
#define ef(x) emplace_front(x)
#define sz(v) ((int)(v).size())
#define file_r(x) freopen(x, "r", stdin)
#define file_w(x) freopen(x, "w", stdout)
#define lowbit(x) ((x) & (-x))
#define rep(i, n) for (int i = 1; i <= (n); i++)
#define repd(i, n) for (int i = (n - 1); i >= 0; i--)
#define in1(n) n=read()
#define in2(n, m) n=read(),m=read()
#define in3(x, y, z) x=read(),y=read(),z=read()
#define sort_asc(c) sort(c.begin(), c.end())
#define iter(it, v) for (auto it = v.begin(); it != v.end(); ++ it)
using namespace std;
struct node
{
int x,y,step;
};
ll n,m,x,y;
bool vis[101][101];
ll dx[13]={0,2,-2,2,-2,1,2,-1,-2,1,2,-1,-2};
ll dy[13]={0,2,2,-2,-2,2,1,-2,-1,-2,-1,2,1};
int read()
{
int s=0,w=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')
w=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
s=s*10+c-'0';
c=getchar();
}
return s*w;
}
void print(int x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>=10)
print(x/10);
putchar(x%10+'0');
return;
}
void bfs(ll n,ll m)
{
queue <node> q;
memset(vis,1,sizeof(vis));
node s,ss;
s.x=x;
s.y=y;
s.step=0;
q.push(s);
while(!q.empty())
{
s=q.front();
q.pop();
rep(i,12)
{
int r=s.x+dx[i];
int l=s.y+dy[i];
if(r<0||r>=100||l<0||l>=100||vis[r][l]==false)
{
vis[r][l]=false;
ss.x=r;
ss.y=l;
ss.step=s.step+1;
q.push(ss);
if(r==1&&l==1)
{
cout<<s.step+1<<endl;
return;
}
}
}
}
}
int main()
{
in2(n,m);
in2(x,y);
bfs(n,m);
bfs(x,y);
return 0;
}