18级快乐的C/C++ 训练赛 #2

D. Light

单点时限: 2.0 sec

内存限制: 256 MB

在一个 $3 \times 3$ 方格内,每个单元格都放着一盏灯(共 $9$ 盏)。所有灯的初始状态都是亮的。现有一种操作 p,执行操作 p(i,j) 会改变(i,j)单元格及其上下左右四个单元格(即:(i + 1,j)(i,j + 1)(i - 1,j)(i,j - 1))中的五盏灯的状态,如果灯的当前状态是亮的,执行操作后它的状态就变为暗的,如果灯的当前状态是暗的,那么执行操作后它的状态就变为亮的。

比如:初始的状态($0$ 表示暗,$1$ 表示亮):

1 1 1

1 1 1

1 1 1

执行 p (1,1)操作后 $9$ 盏灯的状态变为:

0 0 1

0 1 1

1 1 1

现给出在每盏灯上的操作次数,输出 $9$ 盏灯的最后状态。

输入格式

第 $1$ 行:一个正整数 $T$,表示问题的组数。

第 $2 ~3\times T+1$ 行:每一个问题 $3$ 行,每行 $3$ 个正整数,表示对单元格上的灯进行操作的次数 $m(0\leqslant m \leqslant 100)$。

输出格式

对于每个问题,输出一行问题的编号($0$ 开始编号,格式:case #0: 等)。

然后输出 $3$ 行 $3$ 列,分别为 $9$ 盏灯最后的状态($0$ 表示暗,$1$ 表示亮),两个元素之间用一个空格分开。每行最后一个元素后面没有空格。

样例

Input
2
1 0 0
0 0 0
0 0 1
1 0 1
8 8 8
2 0 3
Output
case #0:
0 0 1
0 1 0
1 0 0
case #1:
0 1 0
0 1 1
1 0 0