#include<bits/stdc++.h>
using namespace std;
const int flag[9][3] = {{-1,0},{1,0},{0,-1},{0,1}};
char Imap[503][503];
queue<int>x;
queue<int>y;
void bfs() {
while(x.size() != 0 && y.size() != 0) {
int _x,_y;
for(int i = 0;i < 4;i++) {
_x = x.front() + flag[i][0];
_y = y.front() + flag[i][1];
if(Imap[_x][_y] == 'g') {
cout<<"Yes";
return;
}
if(Imap[_x][_y] == '.') {
x.push(_x);
y.push(_y);
}
}
x.pop();
y.pop();
}
cout<<"No";
return;
}
int main() {
for(int i = 0;i < 502;i++) {
for(int j = 0;j < 502;j++) {
Imap[i][j] = '#';
}
}
int n,m;
cin>>n>>m;
int sx,sy;
int gx,gy;
for(int i = 1;i <= n;i++) {
for(int j = 1;j <= m;j++) {
cin>>Imap[i][j];
if(Imap[i][j] == 's') {
sx = i;
sy = j;
}
}
}
x.push(sx);
y.push(sy);
bfs();
}
为什么这个会直接报编译错啊...