#include<iostream>
using namespace std;
int a[500][500];
int r,c;
int main(){
long long sum=0;
cin>>r>>c;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
char x;
cin>>x;
if(x=='0')a[i][j]=0;
if(x=='*')a[i][j]=1;
}
}
for(int i=0;i<r;i++)if(a[i][0]!=1)a[i][0]=2;
for(int i=0;i<r;i++)if(a[i][c]!=1)a[i][c-1]=2;
for(int i=0;i<c;i++)if(a[0][i]!=1)a[0][i]=2;
for(int i=0;i<c;i++)if(a[r][i]!=1)a[r-1][i]=2;
for(int i=1;i<r-1;i++){
for(int j=1;j<c-1;j++){
if(a[i][j-1]==2||a[i-1][j]==2){
if(a[i][j]!=1)a[i][j]=2;
}
}
}
for(int i=r-2;i>0;i--){
for(int j=c-2;j>0;j--){
if(a[i][j-1]==2||a[i-1][j]==2){
if(a[i][j]!=1)a[i][j]=2;
}
}
}
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
cout<<a[i][j];
if(a[i][j]==0)sum++;
}
cout<<endl;
}
cout<<sum<<endl;
return 0;
}
样例是对的,但测试点一是错的。
谁能帮我???
帮我必关!!!