代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,k=1,minn=20000;
char a[20000][20000];
int b[20000][20000];
struct zt{
int x,y;
}c[20000];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]=='1'){
b[i][j]=0;
c[k].x=i,c[k].y=j;
k++;
}
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++){
if(a[i][j]=='0'){
for(int z=1;z<k;z++)minn=min(minn,abs(i-c[z].x)+abs(j-c[z].y));
b[i][j]=minn;
minn=20000;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}