64分求助
查看原帖
64分求助
310375
blind_L_S_Y楼主2020/11/5 21:08

不知道哪里错了QAQ

#include<bits/stdc++.h>
using namespace std;
int n,a[110][110]={0};
int dis[5][2]={0,0,0,1,1,0,0,-1,-1,0};
bool pd(int x,int y)
{
	if(x<0||x>n+1||y<0||y>n+1)
	  return false;
	if(a[x][y]==1)
	  return false;
	if(a[x][y]==2)
	  return false;
	return true;
}
void bfs(int x,int y)
{
    if(pd(x,y))
      for(int i=1;i<=4;i++)
      { 
        cout<<x<<" "<<y<<endl;
        a[x][y]=2;
	    bfs(x+dis[i][0],y+dis[i][1]);
	  }
	return;
}
int main()
{
	
	cin>>n;
	for(int i=1;i<=n;i++)
	  for(int j=1;j<=n;j++)
	    cin>>a[i][j];
	bfs(1,1);
    for(int i=1;i<=n;i++)
    {
	  for(int j=1;j<=n;j++)
	  {
	    if(a[i][j]==2)
		  cout<<"0 ";
		else  if(a[i][j]==0)
		  cout<<"2 ";
		else
		  cout<<"1 ";
	  }
	  cout<<endl;
	}
	return 0;
}
2020/11/5 21:08
加载中...