“Memo” 或 “Memory” 是一款卡牌游戏。在本题中,游戏使用 25 种图案,每种图案印在恰好两张矩形卡牌上,因此总共有 50 张卡牌。初始时,所有卡牌被随机洗牌并背面朝上放置,因此图案不可见。卡牌占据的位置编号为 1 到 50 的整数。
Vasilisa 通过玩“Memo”来训练她的记忆力。她会在游戏中进行移动。每次移动包含两个动作。第一个动作,Vasilisa 选择一个背面朝上的卡牌位置并将其翻开。第二个动作,她选择另一个这样的位置并同样将其翻开。如果这两张卡牌上的图案相同,它们将保持正面朝上。否则,它们都会再次被翻回背面,且 Vasilisa 记为一次失误(miss)。
当所有卡牌都正面朝上时,Vasilisa 获胜。她的任务是获胜并尽可能减少失误次数。
Vasilisa 记忆力训练有素,并设计了一个很好的策略,现在每局游戏平均约有 14.83 次失误。为了增加趣味性,她叫上她的妹妹 Sasha 一起玩。
卡牌的背面看起来都一样,但当卡牌在不翻面的情况下旋转 180 度时,它们看起来会有所不同。现在 Sasha 和 Vasilisa 按如下方式进行游戏:首先,Sasha 洗牌并将它们正面朝上放置。然后她将它们翻回背面,但对于每张卡牌,她可以选择将其旋转 180 度,或者不旋转。最后,Vasilisa 最初看到的不仅是 50 张背面相同的卡牌,而且对于每张卡牌,她都能看到它是否被旋转了 180 度。
请设计一种方法,让 Sasha 和 Vasilisa 约定卡牌如何旋转,以便 Vasilisa 能以平均不超过 13.5 次失误获胜。
交互
这是一个交互式问题。此外,在本题中,你的程序在每个测试点上会被运行两次。每一行输入都以换行符结束。
第一轮
在第一轮中,程序代表 Sasha。第一行包含单词 “prepare”。第二行包含一个整数 $t$,表示测试用例的数量 ($1 \le t \le 100$)。接下来的 $t$ 行中,每行描述卡牌的初始位置:50 个大写英文字母 “A”–“Y” 没有空格。相同的图案对应相同的字母。每个字母在字符串中恰好出现两次。保证除样例外,每个测试中的所有字符串都是预先随机且均匀选取的。
对于每个测试用例,输出一行 50 个二进制数字:如果卡牌旋转了 180 度,则该位置应包含 1,否则包含 0。
从技术上讲,这一轮是交互式的,但所有输入是一次性给出的。
第二轮
在第二轮中,程序代表 Vasilisa。第一行包含单词 “play”。第二行包含一个整数 $t$,表示测试用例的数量,与第一轮相同。
评测程序会统计所有测试用例的总失误次数。该数字必须最多为 1350:例如,如果恰好有 100 个测试用例(且不少于此),这意味着平均每个测试用例最多只能有 13.5 次失误。
每个测试用例以一行包含 50 个二进制数字开始,这正是第一轮中程序输出的那一行。之后,程序必须交互式地输出动作,直到所有卡牌都正面朝上。
要翻开位置 $p$(1 到 50 之间的整数)的卡牌,请输出包含数字 $p$ 的一行。作为响应,程序会收到一行包含两个字符的内容。如果移动无效,该行将是 “##”(两个井号):例如,位置 $p$ 无效,或者该位置的卡牌已经正面朝上,或者此移动超过了最大允许失误次数。在这种情况下,程序必须终止。否则,第一个字符是位置 $p$ 处对应图案的大写英文字母 “A”–“Y”。第二个字符可以是以下之一:
- “.”(点):如果是移动的第一个动作;
- “-”(减号):如果是移动的第二个动作,且图案不同;
- “+”(加号):如果是移动的第二个动作,图案相同,但 Vasilisa 尚未获胜;
- “!”(感叹号):如果是移动的第二个动作,图案相同,且这是获胜动作。
在收到带有感叹号的响应后,下一行输入属于下一个测试用例,如果没有更多测试用例,交互将终止。
请务必在打印每个动作后立即结束行并刷新输出缓冲区:否则你很可能会得到 “Idleness Limit Exceeded” 的结果。
当程序收到 “##” 行时,它可以立即终止,以获得 “Wrong Answer” 结果,而不是其他结果。
样例
输入格式 1
prepare 2 ABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXY AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYY
输出格式 1
00000000000000000000000001111111111111111111111111 11010011001111111111111111111111111111111111111010
输入格式 2
play 2 00000000000000000000000001111111111111111111111111 A. E- A+ (...) Y. Y! 11010011001111111111111111111111111111111111111010 E. E+ (...) A. A!
输出格式 2
1 5 26 1 (...) 25 50 10 9 (...) 1 2