TIS_Minecraft_CNAI @ 2023-09-30 20:25:20
蒟蒻48分code:
#include<bits/stdc++.h>
using namespace std;
int n,a[35][35],map[35][35];
int xx[5]= {0,0,0,1,-1};
int yy[5]= {0,1,-1,0,0};
void dfs(int x,int y) {
for(int i=0; i<=4; i++) {
int dx=x+xx[i];
int dy=y+yy[i];
if(a[dx][dy]==1)
return ;
if(dx<=n && dx>=1 && dy<=n && dy>=1 && a[dx][dy]==0) {
a[dx][dy]=2;
dfs(dx,dy);
}
}
}
int main() {
cin>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin>>a[i][j];
for(int i=1; i<=n; i++)
dfs(1,i);
for(int i=1; i<=n; i++)
dfs(i,1);
for(int i=1; i<=n; i++)
dfs(n,i);
for(int i=1; i<=n; i++)
dfs(i,n);
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++)
if(a[i][j]==0)
cout<<2<<" ";
else if(a[i][j]==2)
cout<<0<<" ";
else
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}