48pts求调
查看原帖
48pts求调
1283894
Czy54188楼主2024/9/7 13:51
#include <stdio.h>

int n,Map[30][30],iq[5]={0,1,-1,0,0},aq[5]={0,0,0,1,-1};
void dfs(int x,int y){
	if(Map[x][y]) return ;
	for(int i=0;i<5;i++){
		int _=x+iq[i],__=y+aq[i];
		if(_<0 || _>=n || __<0 || __>=n || Map[_][__]==1) continue;
		Map[_][__]=2;
		dfs(_,__);
	}
}

main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&Map[i][j]);
	for(int i=0;i<n;i++){
		dfs(0,i);
		dfs(n-1,i);
		dfs(i,0);
		dfs(i,n-1);
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(Map[i][j]==0) printf("2 ");
			if(Map[i][j]==1) printf("1 ");
			if(Map[i][j]==2) printf("0 ");
		}
		puts("");
	}
	return 0;
}
2024/9/7 13:51
加载中...