QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100 Interactive

#18516. Game: Binary String

Statistics

这是一个交互题。

Alice 和 Bob 在玩一个游戏,游戏使用一个二进制字符串 $s$ 和一个固定整数 $k$。初始时有一个空字符串 $t$。玩家轮流在 $t$ 的末尾添加一个字符('0' 或 '1'),Alice 先手。

交互会一直持续到恰好有 $k$ 个字符被添加到 $t$ 中。当且仅当最终的字符串 $t$ 包含 $s$ 作为连续子串时 Alice 获胜,否则 Bob 获胜。

你可以选择扮演 Alice 或 Bob。你的目标是在与裁判的游戏中获胜。

交互

每个测试运行包含多个测试用例。你应该首先读入一行整数 $T$($1 \le T \le 100$),表示测试用例的数量。

对于每个测试用例,你首先在一行中读入一个二进制字符串 $s$ 和一个整数 $k$($1 \le |s| \le k \le 100$),表示轮数和游戏参数。 然后,输出一个单词:如果你选择扮演 Alice,则输出 Alice;如果你选择扮演 Bob,则输出 Bob。 之后,游戏从空字符串开始。Alice 进行第一次操作。每当轮到你操作时,输出一个字符,是 01。每当轮到裁判操作时,读入一个字符,是 01当当前字符串长度达到 $k$ 时游戏结束。

每次输出操作后你必须刷新输出缓冲区。例如,在 C++ 中你可以使用 cout << endl;cout.flush();

如果你输出了无效的标记、在游戏结束后进行了操作、未刷新缓冲区或输掉了游戏,你将得到 Wrong Answer。

说明

下表展示了样例的一种可能交互。“Jury”列为裁判输出,“Contestant”列为选手输出,“Explanation”列为解释。

Jury Contestant Explanation
1 有一个测试用例。
01 3 $s=\texttt{01}$,$k=3$。
Alice 选手选择扮演 Alice。
0 Alice 追加了 0,此时 $t=\texttt{0}$。
0 Bob 追加了 0,此时 $t=\texttt{00}$。
1 Alice 追加了 1,此时 $t=\texttt{001}$。Alice 获胜,因为 $t$ 包含 01

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.