[USACO2.2] 派对灯 Party Lamps
题目描述
在 IOI98 的节日宴会上,我们有 $n$ 盏彩色灯,他们分别从 $1 \sim n$ 被标上号码。这些灯都连接到四个按钮:
按钮 $1$:当按下此按钮,将改变所有的灯:本来亮着的灯就熄灭,本来是关着的灯被点亮。
按钮 $2$:当按下此按钮,将改变所有奇数号的灯。
按钮 $3$:当按下此按钮,将改变所有偶数号的灯。
按钮 $4$:当按下此按钮,将改变所有序号是 $3k+1 \ (k \in [0,+\infty) \cap \mathbb Z)$ 的灯。例如:$1,4,7,10 \dots$
一个计数器 $c$ 记录按钮被按下的次数。当宴会开始,所有的灯都亮着,此时计数器 $c$ 为 $0$。
你将得到计数器 $c$ 上的数值和经过若干操作后某些灯的状态。写一个程序去找出所有灯最后可能的与所给出信息相符的状态,并且没有重复。
输入输出格式
输入格式
第一行一个正整数 $n$;第二行一个整数 $c$,表示最后计数器的数值。
第三行若干个整数,表示最后亮着的灯,以 `-1` 结束。
第四行若干个整数,表示最后关着的灯,以 `-1` 结束。
保证不会有灯会在输入中出现两次。
输出格式
每一行是所有灯可能的最后状态(没有重复)。
每一行有 $n$ 个字符,第 $i$ 个字符表示 $i$ 号灯。$0$ 表示关闭,$1$ 表示亮着。这些行必须从小到大排列(看作是二进制数)。
如果没有可能的状态,则输出一行 `IMPOSSIBLE`。
输入输出样例
输入样例 #1
10
1
-1
7 -1
输出样例 #1
0000000000
0101010101
0110110110
说明
【数据范围】
对于 $100\%$ 的数据,$10 \le n \le 100$,$0 \le c \le 10^4$。
【样例解释】
在这个样例中,有三种可能的状态:
- 所有灯都关着
- $1,4,7,10$ 号灯关着,$2,3,5,6,8,9$ 亮着。
- $1,3,5,7,9$ 号灯关着,$2,4,6,8,10$ 亮着。
翻译来自NOCOW
USACO 2.2