蒟蒻48分求助
查看原帖
蒟蒻48分求助
1034211
TIS_Minecraft_CNAI楼主2023/9/30 20:25

蒟蒻48分code:

#include<bits/stdc++.h>
using namespace std;
int n,a[35][35],map[35][35];
int xx[5]= {0,0,0,1,-1};
int yy[5]= {0,1,-1,0,0};
void dfs(int x,int y) {
	for(int i=0; i<=4; i++) {
		int dx=x+xx[i];
		int dy=y+yy[i];
		if(a[dx][dy]==1)
			return ;
		if(dx<=n && dx>=1 && dy<=n && dy>=1 && a[dx][dy]==0) {
			a[dx][dy]=2;
			dfs(dx,dy);
		}
	}
}
int main() {
	cin>>n;
	for(int i=1; i<=n; i++)
		for(int j=1; j<=n; j++)
			cin>>a[i][j];
	for(int i=1; i<=n; i++)
		dfs(1,i);
	for(int i=1; i<=n; i++)
		dfs(i,1);
	for(int i=1; i<=n; i++)
		dfs(n,i);
	for(int i=1; i<=n; i++)
		dfs(i,n);
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++)
			if(a[i][j]==0)
				cout<<2<<" ";
			else if(a[i][j]==2)
				cout<<0<<" ";
			else
				cout<<a[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}
2023/9/30 20:25
加载中...