So?
by t162 @ 2019-05-19 15:48:30
```cpp
#include<iostream>
using namespace std;
int n,m,x0,y0,x9,y9;
int a[51][51];
char dect;
bool vis[51][51][4];
int head,tail;
int q[2501][4];
int xx1[4]={-1,0,1,0};
int yy1[4]={0,1,0,-1};
int xx2[4]={-2,0,2,0};
int yy2[4]={0,2,0,-2};
int xx3[4]={-3,0,3,0};
int yy3[4]={0,3,0,-3};
int find(char q){
if(q=='N')
return 0;
if(q=='E')
return 1;
if(q=='S')
return 2;
if(q=='W')
return 3;
}
void read(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]==1){
vis[i][j][0]=1;
vis[i][j][1]=1;
vis[i][j][2]=1;
vis[i][j][3]=1;
}
}
}
cin>>x0>>y0>>x9>>y9>>dect;
//N 0 E 1 S 2 W 3
vis[x0][y0][find(dect)]=1;
tail=1,head=0;
q[1][0]=x0;
q[1][1]=y0;
q[1][2]=find(dect);
q[1][3]=0;
}
bool check(int xxx,int yyy){
if(xxx>=1&&xxx<=n&&yyy>=1&&yyy<=m)
return true;
return false;
}
void bfs(){
bool flag=0;
while(tail>=head){
head++;
int h=head;
int x=q[head][0],y=q[head][1],f=q[head][2],t=q[head][3];
cout<<x<<" "<<y<<" "<<f<<endl;
vis[x][y][f]=1;
if(x==x9&&y==y9){
cout<<t<<endl;
flag=1;
break;
}
if(!vis[x][y][(f+1)%4])//右转
vis[x][y][(f+1)%4]=1,q[++h][0]=x,q[h][1]=y,q[h][2]=(f+1)%4,q[h][3]=t+1,tail++;
if(f==0&&!vis[x][y][3])//左转
vis[x][y][3]=1,q[++h][0]=x,q[h][1]=y,q[h][2]=3,q[h][3]=t+1,tail++;
else if(f!=0&&!vis[x][y][(f-1)%4])//左转
vis[x][y][(f-1)%4]=1,q[++h][0]=x,q[h][1]=y,q[h][2]=(f-1)%4,q[h][3]=t+1,tail++;
int x1=x+xx1[f],y1=y+yy1[f];
if(check(x1,y1)&&!vis[x1][y1][f])//creep 1
vis[x1][y1][f]=1,q[++h][0]=x1,q[h][1]=y1,q[h][2]=f,q[h][3]=t+1,tail++;
int x2=x+xx2[f],y2=y+yy2[f];
if(check(x2,y2)&&!vis[x2][y2][f])//walk 2
vis[x2][y2][f]=1,q[++h][0]=x2,q[h][1]=y2,q[h][2]=f,q[h][3]=t+1,tail++;
int x3=x+xx3[f],y3=y+yy3[f];
if(check(x3,y3)&&!vis[x3][y3][f])//run 3
vis[x3][y3][f]=1,q[++h][0]=x3,q[h][1]=y3,q[h][2]=f,q[h][3]=t+1,tail++;
}
if(!flag)
cout<<-1<<endl;
//cout<<head<<" "<<tail;
}
int main(){
read();
bfs();
return 0;
}
```
by 初嫁QAQ @ 2019-05-19 15:57:34
So?
by 森岛帆高 @ 2019-05-19 15:57:49
~~**@[初嫁QAQ](/space/show?uid=102028)
没找着错**~~
by 初嫁QAQ @ 2019-05-19 15:58:00
~~**@[初嫁QAQ](/space/show?uid=102028)
是我没有读懂题意QAQ**~~
by 初嫁QAQ @ 2019-05-19 16:00:26
@[初嫁QAQ](/space/show?uid=102028) 您怕不是想打
~~@[初嫁QAQ](/space/show?uid=102028) 没找着错~~
by willbe233 @ 2019-05-19 16:20:06