#L0426. 方阵填色

方阵填色

题目描述

在一个由数字 00 构成的 n×nn \times n 方阵中,存在一个由数字 11 构成的闭合圈,形状任意。闭合圈将方阵分为圈内和圈外两部分。

现要求把闭合圈内部的所有 00 填写为 22

判断方法:如果从某个 00 出发,只向上下左右四个方向移动且仅经过其他 00 的情况下,无法到达方阵的边界,则认为这个 00 在闭合圈内。闭合圈不一定是环形的,可以是任意形状,但保证圈内的 00 是连通的(两两之间可以相互到达)。

例如,6×66 \times 6 的方阵,涂色前和涂色后如下:

0 0 0 0 0 0
0 0 0 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 1 0 1
1 1 1 1 1 1
0 0 0 0 0 0
0 0 0 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 1 2 1
1 1 1 1 1 1

输入格式

第一行一个整数 n(1n30)n(1 \le n \le 30)

接下来 nn 行,每行 nn 个由空格隔开的数字 0011,构成 n×nn \times n 的方阵。

方阵内恰好有一个闭合圈,圈内至少有一个 00

输出格式

输出填好数字 22 的完整 n×nn \times n 方阵,每行数字之间用空格隔开。

样例

6
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
0 0 0 0 0 0

0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1 1 1 1 1 1

</p>

提示

对于 100%100\% 的数据,1n301 \le n \le 30

难度 普及-
通过率
尝试 0
已通过 0
ID
1154
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者