#P7352. 炉心融解
炉心融解
题目背景
2020-2021 国家集训队自选题
题目描述
你叫了 个人来玩游戏。 个人从 到 编号,按顺序坐成一圈, 号与 号相邻。
你给这 个人每人发了一张写着数字 或 的卡片。每个人都可以看到除了相邻的两个人以外所有人的卡片数字,也可以看到自己的。
游戏共进行 回合。第 回合你会向所有人公布 条信息,信息的格式都是“某个集合里存在某种数字的卡片”。公布完之后:
- 如果某个人手里的卡片写着 ,且他可以通过推断确定相邻的两个人卡片数字逻辑或的值,他就必须大喊“Meltdown!”。
- 如果某个人手里的卡片写着 ,且他可以通过推断确定相邻的两个人卡片数字逻辑异或的值,他就必须大喊“Meltdown!”。
所有人都清楚游戏规则,且都有极强的推断能力,只要依据他已有的信息能够推断出来他就必须要喊。喊话是所有人同时喊,不可以听别人喊完了再继续推断。然后本回合结束,进入下一回合。
除此之外这 个人没有任何信息交流。现在给出每个人的卡片数字和你公布的所有信息,求每个人第一次喊出“Meltdown!”是在第几回合。
输入格式
输入的第一行包括两个正整数 ,表示人数和回合数。第二行 个整数,分别表示编号 到 的人的卡片上的数字。接下来包括 个部分,第 部分描述了第 回合你公布的信息。
第 部分的第一行包括一个非负整数 ,表示第 回合公布的信息条数。接下来 行,每行第一个正整数 ,表示集合的人数,接下来 个互不相同的整数表示集合里所有人的编号。最后一个整数 ,表示这个集合里存在数字为 的卡片。数据保证这些信息是正确的。
输出格式
输出包括一行 个整数,分别表示编号 到 的人第一次喊出“Meltdown!”时的回合数。如果他自始自终都没有喊“Meltdown!”,这个数输出 。
3 2
1 1 0
2
2 0 2 1
1 1 1
0
2 2 1
3 2
1 1 1
1
3 0 1 2 1
0
2 2 2
提示
对于 的数据,,,。