#P1063. Flip and Shift
Flip and Shift
问题描述
这个谜题由一个椭圆形轨道上的随机序列组成,序列包含 个黑色盘子和 个白色盘子。轨道上有一个旋转门,可以翻转(即反转)三个连续的盘子。在图1中,轨道上有8个黑色盘子和10个白色盘子。你可以旋转转门来翻转其中的三个盘子,或者将轨道上的每个盘子顺时针移动一个位置(图1)。
这个谜题的目标是通过翻转和移动操作,将相同颜色的盘子聚集到相邻的位置(图2)。
你需要编写一个程序,判断给定的序列是否可以达成目标。如果可以达成目标,则输出“YES”;否则输出“NO”。
输入
输入包含 个测试用例。测试用例的数量 在第一行给出。接下来的 行,每行给出一个测试用例。每个测试用例包含一个整数(表示 的值)和一个由 个0和1组成的序列,表示初始序列。0表示白色盘子,1表示黑色盘子。 的值至少为10,最多不超过30。数字之间用空格分隔。
输出
对于每个测试用例,输出“YES”或“NO”,每个结果占一行。
示例输入
2
18 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1
14 1 1 0 0 1 1 1 0 0 1 1 0 1 0
示例输出
YES
NO
来源
Taejon 2001