P15749 [JAG 2024 Summer Camp #3] Interactive String Guessing

题目描述

这是一道**交互题**。 你的任务是编写一个程序,通过重复的询问与回答来猜出一个秘密字符串。该秘密字符串仅由字符 **a** 和 **b** 组成,其长度在 $1$ 到 $1,000$ 之间。记秘密字符串为 $\mathbf{S}$。在一次询问中,你需要指定一个字符串 $\mathbf{T}$。作为回应,系统会返回 $\mathbf{T}$ 是否是 $\mathbf{S}$ 的一个子串。这里,当 $\mathbf{S}$ 的某个连续部分与 $\mathbf{T}$ 完全匹配时,称 $\mathbf{T}$ 是 $\mathbf{S}$ 的子串。例如,**aba** 是 **babab** 和 **aba** 的子串,但不是 **abba** 的子串。你最多可以进行 $1,100$ 次询问。 ### 交互过程 你应该从向标准输出发送一次询问开始,并从标准输入接收回应。这个交互过程可以重复多次。当你通过这些交互对自己的猜测有足够信心时,就可以发送你的答案。一次询问的格式应如下所示,并以换行符结束。 $$\begin{aligned} &? \ T \end{aligned}$$ 这里,$\mathbf{T}$ 是一个非空字符串,仅由 **a** 和 **b** 组成,其长度在 $1$ 到 $1,000$ 之间(含端点)。对询问的回应将从标准输入给出,格式如下,并以换行符结束。 $$\begin{aligned} &R \end{aligned}$$ 这里,$\mathbf{R}$ 表示对询问的回应。当 $\mathbf{T}$ 是秘密字符串 $\mathbf{S}$ 的子串时,$\mathbf{R}$ 为 **Yes**;当 $\mathbf{T}$ 不是秘密字符串 $\mathbf{S}$ 的子串时,$\mathbf{R}$ 为 **No**。然而,如果 $\mathbf{T}$ 不满足约束条件,或者询问次数超过了限制,那么 $\mathbf{R}$ 将为 **Invalid**。如果评测机返回 **Invalid**,你的程序就已经被判定为不正确,因此请立即终止程序。 你应该将你的答案以如下格式发送到标准输出,并以换行符结束。 $$\begin{aligned} &! \ T \end{aligned}$$ 这里,$\mathbf{T}$ 是你所确定的秘密字符串,其长度在 $1$ 到 $1,000$ 之间(含端点)。你只能发送一次答案,因此你必须在发送答案之前,通过重复的交互过程来确保你的猜测是正确的。发送答案后,你的程序应立即终止,不要输出任何额外内容。 ### 关于交互评测的注意事项 如果在交互过程中输出了格式错误的内容,或者你的程序提前退出,评测结果将是不确定的。请在打印答案后立即终止程序,否则评测结果将不确定。由于某些环境需要刷新输出缓冲区,请确保你的输出确实被发送出去了。否则,你的输出将永远不会到达评测机。 字符串 $\mathbf{S}$ 将在第一次交互之前确定,并且不会根据你的提问或其他因素而改变。

输入格式

输出格式

说明/提示

翻译由 DeepSeek V3.2 完成