#P1222. EXTENDED LIGHTS OUT
EXTENDED LIGHTS OUT
描述
在扩展版的游戏《Lights Out》中,游戏包含行列的按钮(实际游戏为行列)。每个按钮都有一个灯。当按下一个按钮时,该按钮及其最多四个邻居(上、下、左、右)的灯光状态都会被反转(如果是亮的,灯会熄灭;如果是灭的,灯会亮起)。角落的按钮会改变个按钮的状态,边缘的按钮会改变个按钮的状态,而其他按钮则会改变个按钮的状态。例如,如果按下下面左侧标记为的按钮,显示会变化为右侧的图像。

游戏的目标是从任意初始灯光状态开始,按下按钮使得显示的所有灯都熄灭。当相邻的按钮被按下时,一个按钮的动作可能会撤销另一个按钮的效果。例如,在下面的显示中,按下左侧显示中标记为的按钮后,结果会变为右侧的显示。注意,第行第列和第行第列的按钮都会改变第行第列按钮的状态,因此最终它的状态不会改变。

注意事项:
- 按钮按下的顺序无关紧要。
- 如果一个按钮被按第二次,它会完全取消第一次按下的效果,因此不需要按同一个按钮超过一次。
- 如第二张图所示,可以通过按下第二行中对应的按钮将第一行的所有灯熄灭。通过在每一行中重复这一过程,可以将前四行的所有灯熄灭。类似地,通过按下第二列、第三列等的按钮,可以将前五列的所有灯熄灭。
编写程序解决此难题。
输入
输入的第一行是一个正整数,表示接下来有个谜题。每个谜题有五行,每行有六个或,数字之间由一个或多个空格分隔。表示灯熄灭,表示灯亮起。
输出
对于每个谜题,输出一行字符串:“PUZZLE #m”,其中是谜题在输入文件中的编号。接着输出一个类似谜题的显示(格式与输入相同)。在这个显示中,表示需要按下的按钮,而表示不按下的按钮。每个或之间应该有一个空格。
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
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
来源
Greater New York 2002