rt
大佬帮帮忙啊orz!!
#include<bits/stdc++.h>
using namespace std;
int n,m,h=1,t=1,c;
int s1,s2,e1,e2;
char a[610][610];
int q[36000][4];
int fx[5]={0,0,1,0,-1};
int fy[5]={0,1,0,-1,0};
int main()
{
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]=='s')
{
s1=i,s2=j;
}
else if(a[i][j]=='g')
{
e1=i,e2=j;
}
}
}
a[s1][s2]='#';
q[1][1]=s1;
q[1][2]=s2;
q[1][3]=0;
while(h<=t)
{
for(int i=1;i<=4;i++)
{
int tx=q[h][1]+fx[i];
int ty=q[h][2]+fy[i];
if(tx>=1 && ty>=1 && tx<=n && ty<=m && a[tx][ty]=='.' || a[tx][ty]=='g')
{
a[tx][ty]='#';
t++;
q[t][1]=tx;
q[t][2]=ty;
q[t][3]=q[h][3]+1;
if(tx==e1 && ty==e2)
{
cout<<"Yes";
exit(0);
}
}
}
h++;
}
cout<<"No";
return 0;
}