#include<iostream>
#include<queue>
using namespace std;
// 坐标的结构体
struct Pos{int x, y;};
int n;
bool mp[105][105];
bool vis[105][105];
int dx[4] = {-1,1,0,0};
int dy[4] = {0,0,1,-1};
int sx,sy,ex,ey;
// bfs(x, y)表示能不能从(x, y)走到终点
bool bfs(int x, int y){
// 准备一个队列
queue<Pos> q;
// 起点入队
q.push({x, y});
// 标记起点
vis[x][y] = 1;
// 遍历队列,从起点开始扩展
while(!q.empty()){
// 取出队首元素,开始扩展
Pos t = q.front();
// 队首元素出队
q.pop();
// 如果走到终点,返回为真
if(t.x==ex && t.y==ey) return 1;
// 扩展这个点的相邻节点(上 下 左 右)
for(int i=0;i<4;i++){
int xx = t.x + dx[i];
int yy = t.y + dy[i];
// 可行性验证
if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&mp[xx][yy]==0&&vis[xx][yy]==0){
q.push({xx, yy});
vis[xx][yy] = 1;
}
}
}
return 0;
}