Universal Cup Judging System

Universal Cup

Time Limit: 2.0 s Memory Limit: 512 MB Total points: 100 Communication
Statistics

“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

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.