注意:要晋级下一轮,你需要获得 25 分。仅解决此问题不足以获得足够的分数。
最近你去看了一场魔术表演。其中一个魔术让你印象深刻,于是你决定尝试找出它背后的秘密!
魔术师首先将 16 张牌排成一个方阵:4 行牌,每行 4 张。每张牌的正面都写着一个 1 到 16 之间互不相同的数字。接下来,魔术师请一名志愿者选一张牌,并告诉他这张牌在哪一行。
最后,魔术师再次将这 16 张牌排成一个方阵,排列顺序可能与之前不同。他再次询问志愿者她的牌在哪一行。仅凭这两个问题的答案,魔术师就能准确判断出志愿者选的是哪张牌。很神奇,对吧?
你决定编写一个程序来帮助你理解魔术师的技巧。程序将获得两组牌的排列方式,以及志愿者对两个问题的回答:所选牌在第一次排列中的行号,以及所选牌在第二次排列中的行号。行号从上到下依次为 1 到 4。
你的程序应该确定志愿者选择了哪张牌;如果志愿者可能选择的牌不止一张(魔术师表现不佳),则输出相应提示;如果没有任何一张牌符合志愿者的回答(志愿者作弊了),也请输出相应提示。
通常,Google Code Jam 的题目包含 1 个小数据集输入和 1 个大数据集输入。本题仅有 1 个小数据集输入。一旦你解决了这个小数据集输入,你就完成了此题。
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数,表示第一个问题的答案。接下来的 4 行代表第一次牌的排列:每行包含 4 个整数,由单个空格分隔。下一行包含第二个问题的答案,随后的 4 行以相同的格式包含第二次排列。
对于每个测试用例,输出一行 "Case #x: y",其中 $x$ 是测试用例编号(从 1 开始)。
如果志愿者可能选择的牌只有一张,则 $y$ 应为该牌上的数字。如果志愿者可能选择的牌有多张,则 $y$ 应为 "Bad magician!"(不含引号)。如果没有任何一张牌符合志愿者的回答,则 $y$ 应为 "Volunteer cheated!"(不含引号)。文本必须完全准确,请考虑直接从此处复制粘贴。
$1 \le T \le 100$。 $1 \le$ 两个答案 $\le 4$。 1 到 16 的每个数字在每次排列中恰好出现一次。
样例
输入格式 1
3 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 1 2 5 4 3 11 6 15 9 10 7 12 13 14 8 16 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
输出格式 1
Case #1: 7 Case #2: Bad magician! Case #3: Volunteer cheated!