2025.06.04
#include <stdio.h>
int m,n,arr[1001][1001]={},day=0,cnt=0,tom=0;
int queue[2][1001]={},front=-1,back=-1,p=0;
void push(int x, int y)
{
if(x==-1||x==m+1||y==-1||y==n+1||arr[x][y]==-1)
{
return ;
}
else
{
queue[0][++back]=x;
queue[1][back]=y;
}
}
void bfs()
{
while(front!=back||front==p-1)
{
front++;
int x=queue[0][front];
int y=queue[1][front];
push(x+1,y);
push(x-1,y);
push(x,y-1);
push(x,y+1);
printf("_\n");
}
return ;
}
int main()
{
int i,j;
scanf("%d %d",&m,&n);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr[i][j]==1)
{
queue[0][++back]=i;
queue[1][back]=j;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr[i][j]!=-1)
{
tom++;
}
}
}
while(1)
{
p=back;
bfs();
day++;
if(back==tom)
{
break;
}
cnt=0;
}
printf("%d",day);
return 0;
}




