#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
#define maxsize 150
int maze[maxsize][maxsize];
int dir[4][2]={1,0,-1,0,0,1,0,-1};
void ShortestPath(int m,int n)
{
bool visited[m][n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
visited[m][n]=false;
queue<int> qx,qy;
int ex,ey;ex=ey=0;
qx.push(ex);
qy.push(ey);
visited[ey][ey]=true;
bool findway=false;
while(!findway)
{
ex=qx.front();
ey=qy.front();
for(int i=0;i<4;i++)
{
int next_ex=ex+dir[i][0];
int next_ey=ey+dir[i][1];
if(next_ex>=0&&next_ex<n && next_ey>=0&&next_ey<m && maze[next_ey][next_ex]==0 && visited[next_ey][next_ex]==false)///判断是否出界,是否能走,是否访问过
{
qx.push(next_ex);
qy.push(next_ey);
visited[next_ey][next_ex]=true;
}
if(next_ex==m-1 && next_ey==n-1)
findway=true;
}
cout<<qy.front()<<"."<<qx.front()<<endl;
qx.pop();
qy.pop();
}
}
int main()
{
cout<<"Enter the size of the maze:"<<endl;
int m,n;
cin>>m>>n;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>maze[i][j];
ShortestPath(m,n);
cout<<m-1<<"."<<n-1<<endl;
return 0;
}
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
#define maxsize 150
int maze[maxsize][maxsize];
int dir[4][2]={1,0,-1,0,0,1,0,-1};
void ShortestPath(int m,int n)
{
bool visited[m][n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
visited[m][n]=false;
queue<int> qx,qy;
int ex,ey;ex=ey=0;
qx.push(ex);
qy.push(ey);
visited[ey][ey]=true;
bool findway=false;
while(!findway)
{
ex=qx.front();
ey=qy.front();
for(int i=0;i<4;i++)
{
int next_ex=ex+dir[i][0];
int next_ey=ey+dir[i][1];
if(next_ex>=0&&next_ex<n && next_ey>=0&&next_ey<m && maze[next_ey][next_ex]==0 && visited[next_ey][next_ex]==false)///判断是否出界,是否能走,是否访问过
{
qx.push(next_ex);
qy.push(next_ey);
visited[next_ey][next_ex]=true;
}
if(next_ex==m-1 && next_ey==n-1)
findway=true;
}
cout<<qy.front()<<"."<<qx.front()<<endl;
qx.pop();
qy.pop();
}
}
int main()
{
cout<<"Enter the size of the maze:"<<endl;
int m,n;
cin>>m>>n;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>maze[i][j];
ShortestPath(m,n);
cout<<m-1<<"."<<n-1<<endl;
return 0;
}