请各位大佬帮我看看为什么没有输出?
#include <bits/stdc++.h>
using namespace std;
int n , m , q , w ;
char a[10005][10005] = {} ;
int dx[] = {1 , -1 , 0 , 0} ;
int dy[] = {0 , 0 , 1 , -1} ;
struct node{
int x , y ;
node(int x1 , int y1):x(x1) , y(y1){}
};
int bfs(int v , int w) {
int b[10005][10005] = {} , sum = 0;
b[v][w] = -1 ;
queue<node>p;
p.push(node(v , w));
while (!p.empty()) {
node cur = p.front() ;
p.pop() ;
sum ++;
for (int i = 0 ; i < 4 ; i ++) {
int _x = cur.x + dx[i] ;
int _y = cur.y + dy[i] ;
if (a[cur.x][cur.y] == 0 && a[_x][_y] == 1 && b[_x][_y] == 0
&& _x <= n && _x >= 1 && _y <= n && _y >=1) {
p.push(node(_x , _y));
b[_x][_y] = -1;
}
if (a[cur.x][cur.y] == 1 && a[_x][_y] == 0 && b[_x][_y] == 0
&& _x <= n && _x >= 1 && _y <= n && _y >=1) {
p.push(node(_x , _y)) ;
b[_x][_y] = -1;
}
}
}
return sum;
}
int main () {
cin >> n >> m ;
for (int i = 1 ; i <= n ; i ++) cin >> a[i] ;
while (m --) {
cin >> q >> w ;
cout << bfs(q , w) << endl ;
}
return 0;
}