救救孩子
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
using namespace std;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int a[40][40];
int n;
bool f[40][40];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
queue<int> x;
queue<int> y;
x.push(0);
y.push(0);
while(!x.empty()){
f[0][0]=1;
for(int i=0;i<4;i++){
int nx=x.front()+dx[i];
int ny=y.front()+dy[i];
if(nx>=0&&ny<=n+1&&ny>=0&&ny<=n+1&&a[nx][ny]==0&&f[nx][ny]==0){
f[nx][ny]=1;
x.push(nx);
y.push(ny);
}
}
x.pop();
y.pop();
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]==0&&f[i][j]==0){
cout<<2<<" ";
}
else cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}