#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
struct date
{
int x,y,step;
}pp;
int g[2010][2010];
int n,m,ex,ey,sx,sy;
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
queue <date> q;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
char x;cin>>x;
if(x=='#') g[i][j]=1;
if(x=='m')
sx=i,sy=j;
if(x=='d')
ex=i,ey=j;
}
pp.x=sx,pp.y=sy,pp.step=0;
q.push(pp);
g[sx][sy]=1;
while(!q.empty())
{
date now=q.front();
q.pop();
for(int k=0;k<4;k++)
{
pp.x=now.x+dx[k];
pp.y=now.y+dy[k];
pp.step=now.step+1;
// cout<<pp.x<<" "<<pp.y<<endl;
if(pp.x==ex&&pp.y==ey)
{
cout<<pp.step<<endl;
return 0;
}
if(pp.x>=1&&pp.x<=n&&pp.y>=1&&pp.y<=m&&g[pp.x][pp.y]==0)
{
// cout<<pp.step<<endl;
g[pp.x][pp.y]=1;
q.push(pp);
}
}
}
cout<<"No Way!"<<endl;
return 0;
}
洛谷 P2298 Mzc和男家丁的游戏
最新推荐文章于 2024-07-10 22:49:54 发布