32,
1,5过了
#include<iostream>
using namespace std;
int a[101][101];
int ans=2,f=0,n;
void bfs(int fx,int fy)
{
if(a[fx][fy]==1||a[fx][fy]==ans)
{
return;
}
if(fx<=1||fx>=n||fy<=1||fy>=n)
{
f=1;
return;
}
a[fx][fy]=ans;
bfs(fx+1,fy);
bfs(fx,fy+1);
bfs(fx-1,fy);
bfs(fx,fy-1);
}
int main()
{
int x,y;
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++)
{
for(int j=1;j<=n;j++)
{
if(a[i][j]==0)
{
f=0;
bfs(i,j);
if(f==1)
{
for(int k=1;k<=n;k++)
{
for(int l=1;l<=n;l++)
{
if(a[k][l]==ans)
{
a[k][l]=-1;
}
}
}
ans++;
}
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i][j]==-1||a[i][j]==0)
{
cout<<0;
}
else if(a[i][j]==1)
{
cout<<1;
}
else
{
cout<<2;
}
// cout<<a[i][j];
cout<<' ';
}
cout<<endl;
}
return 0;
}