WA了第四个点,不知道为啥
#include<bits/stdc++.h>
using namespace std;
struct p{
int x,y,step,flag;
}q[1000001];
int n,m,f=1,t=1;
int a[1001][1001];
int dx[8]={1,1,1,-1,-1,-1,0,0};
int dy[8]={1,0,-1,0,1,-1,1,-1};
bool used[1001][1001];
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
q[1].x=q[1].y=1,q[1].step=0,q[1].flag=-1;
used[1][1]=1;
while(f<=t){
p u=q[f++],v;
for(int i=0;i<8;i++){
v.x=u.x+a[u.x][u.y]*dx[i];
v.y=u.y+a[u.x][u.y]*dy[i];
v.step=u.step+1;
v.flag=i;
if(i==u.flag) continue;
if(v.x<1||v.y<1||v.x>n||v.y>m) continue;
if(used[v.x][v.y]) continue;
if(v.x==n&&v.y==m){
cout<<v.step;
return 0;
}
q[++t]=v;
used[v.x][v.y]=1;
}
}
cout<<"NEVER";
return 0;
}