我暴力比你多对了个#11
```cpp
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[10][10],fx,fy,minn=1e8+1;
bool fun(long long x,long long y,long long z,long long l,long long s)
{
bool ans1,ans2,ans3,ans4;
if(a[x][y]==0||z==0)
return 0;
if(a[x][y]==3)
{
if(s<minn)
minn=s;
return 1;
}
if(a[x][y]==4)
z=6;
if(l!=1&&x!=1)
ans1=fun(x+1,y,z-1,3,s+1);
if(l!=2&&y!=1)
ans2=fun(x,y-1,z-1,4,s+1);
if(l!=3&&x!=n)
ans3=fun(x+1,y,z-1,1,s+1);
if(l!=4&&y!=m)
ans4=fun(x,y+1,z-1,2,s+1);
if(ans1==1||ans2==1||ans3==1||ans4==1)
return 1;
return 0;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int k=1;k<=m;k++)
{
cin>>a[i][k];
if(a[i][k]==2)
{
fx=i;fy=k;
}
}
if(fun(fx,fy,6,0,0)==0)
cout<<-1;
else
cout<<minn;
return 0;
}
```
by wangjiawen @ 2023-06-12 21:48:32