0分求助
查看原帖
0分求助
892625
WangYinxiAlex楼主2023/9/13 21:37
#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;
}

样例是对的,但测试点一是错的。

谁能帮我???

帮我必关!!!

2023/9/13 21:37
加载中...