代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
int mmap[1000][1000];
int fx[4]={0,0,-1,1};
int fy[4]={-1,1,0,0};
struct node{
int x;
int y;
int se;
};
void bfs(int x,int y,int se) {
int ttmap[1000][1000];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
ttmap[i][j]=mmap[i][j];
}
}
queue<node> q;
q.push(node{x,y,se});
ttmap[x][y]=-1;
while(!q.empty()) {
node qn=q.front();
q.pop();
for(int i=0;i<4;i++) {
int tx=qn.x+fx[i];
int ty=qn.y+fy[i];
int tse=qn.se;
if(tx<0||tx>=n||ty<0||ty>=n||ttmap[tx][ty]==tse||ttmap[tx][ty]==-1) continue;
cout<<tx<<' '<<ty<<endl;
ttmap[tx][ty]=-1;
q.push(node{tx,ty,tse});
}
}
}
int main() {
char tc;
cin>>n>>m;
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
cin>>tc;
mmap[i][j]=tc-'0';
}
}
for(int i=0;i<m;i++) {
int tx,ty;
cin>>tx>>ty;
bfs(tx,ty,mmap[tx][ty]);
}
return 0;
}
输入: 2 2 01 10 1 1 2 2 输入到1 1时回车后程序显示退出 ???