Czy54188 @ 2024-09-07 13:51:45
#include <stdio.h>
int n,Map[30][30],iq[5]={0,1,-1,0,0},aq[5]={0,0,0,1,-1};
void dfs(int x,int y){
if(Map[x][y]) return ;
for(int i=0;i<5;i++){
int _=x+iq[i],__=y+aq[i];
if(_<0 || _>=n || __<0 || __>=n || Map[_][__]==1) continue;
Map[_][__]=2;
dfs(_,__);
}
}
main(){
scanf("%d",&n);
for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&Map[i][j]);
for(int i=0;i<n;i++){
dfs(0,i);
dfs(n-1,i);
dfs(i,0);
dfs(i,n-1);
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(Map[i][j]==0) printf("2 ");
if(Map[i][j]==1) printf("1 ");
if(Map[i][j]==2) printf("0 ");
}
puts("");
}
return 0;
}