Problem 2106. -- 熄灯问题

2106: 熄灯问题

Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
Submitted: 266  Accepted: 111
[Submit][Status][Web Board]

Description

有一个由按钮组成的矩阵,其中每行有6个按钮,共5行;每个按钮的位置上有一盏灯。
当按下一个按钮后, 该按钮以及周围位置(上,下, 左,右)的灯都会改变状态。如果灯原来是点亮的,就会被熄灭。如果灯原来是熄灭的,则会被点亮。
在矩阵角上的按钮改变3盏灯的状态,在矩阵边上的按钮改变4盏灯的状态,其他的按钮改变5盏灯的状态。
与一盏灯毗邻的多个按钮被按下时,一个操作会抵消另一次操作的结果。

给定矩阵中每盏灯的初始状态,求一种按按钮方案,使得所有的灯都熄灭。

Input

第一行是一个正整数N, 表示需要解决的案例数。
每个案例由5行组成,每一行包括6个数字,这些数字以空格隔开,可以是0或1。0表示灯的初始状态是熄灭,1表示灯的初始状态是点亮的。

Output

对每个案例,首先输出一行字符串“PUZZLE #m:”,其中m是该案例的序号(从1开始计数)。
接着按照该案例的输入格式输出5行,每行6个数字。1表示需要把对应的按钮按下,0表示不需要按对应的按钮。每个数字以一个空格隔开。

Sample Input

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

Sample Output

PUZZLE #1:
1 0 1 0 0 1
1 1 0 1 0 1
0 0 1 0 1 1
1 0 0 1 0 0
0 1 0 0 0 0
PUZZLE #2:
1 0 0 1 1 1
1 1 0 0 0 0
0 0 0 1 0 0
1 1 0 1 0 1
1 0 1 1 0 1

[Submit][Status][Web Board]