84分 #3不过
查看原帖
84分 #3不过
370191
火星─002楼主2021/1/19 14:30
#include<iostream>
#include<cstdio>
using namespace std;
int n,a[100][100];
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=n;i>=1;i--)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i][j]==1&&a[i][j+1]==0)
			{
				j++;
				int k=j,flag=0;
				for(;k<=n;k++)
				{
					if(a[i][k]==1){flag=1;break;}
					if(!(a[i+1][k]==1||a[i+1][k]==2)){flag=2;break;}
					//cout<<k<<' ';
				}
				if(flag!=1||flag==2)break;
				for(;a[i][j]!=1;j++)
				{
					a[i][j]=2;
				}
			}
		}
		for(int j=n;j>=1;j--)
		{
			if(a[i][j]==1&&a[i][j+1]==0)
			{
				j--;
				int k=j,flag=0;
				for(;k<=n;k--)
				{
					if(a[i][k]==1){flag=1;break;}
					if(!(a[i+1][k]==1||a[i+1][k]==2)){flag=2;break;}
					//cout<<k<<' ';
				}
				if(a[i][k]!=1)break;
				for(;a[i][j]!=1;j--)
				{
					a[i][j]=2;
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
/*
0 1 1 1 1 0
0 1 0 0 1 0
1 1 0 0 1 1
1 0 0 1 0 1
1 0 0 1 0 1
1 1 1 1 1 1
*/
2021/1/19 14:30
加载中...