P17578 [JAG 2026 Summer Camp #3] Guess Palindrome

题目描述

Alice 有一个隐藏的字符串 $S$,长度为 $N$,仅由 `a` 和 `b` 两种字符组成。由于她喜欢对称的字符串,已知 $S$ 是一个回文串。你的任务是通过向 Alice 提出以下类型的询问来确定 $S$: - 你给出一个任意的非空字符串 $T$,其长度不超过 $N$,且仅由 `a` 和 `b` 组成。 - Alice 回答一个整数,表示 $T$ 作为连续子串在 $S$ 中出现的次数。相互重叠的出现也会被计数。 然而,为了不让 Alice 不高兴,你最多只能询问 $\lfloor N/2\rfloor$ 次。 请编写一个程序,在给定的询问次数限制内确定隐藏字符串 $S$。 ### 交互方式 首先,从标准输入读入 $S$ 的长度 $N$($2\le N\le100$)。 读入后,你可以开始询问。对于使用字符串 $T$ 的询问,向标准输出打印以下格式,其中 $T$ 必须是长度不超过 $N$、仅由 `a` 和 `b` 组成的非空字符串。 ```text ? T ``` 作为该询问的回复,标准输入会给出一个整数,表示 $T$ 作为连续子串在 $S$ 中出现的次数。 确定 $S$ 后,按照以下格式向标准输出打印答案。 ```text ! S ``` 你最多可以进行 $\lfloor N/2\rfloor$ 次询问,并且必须恰好输出一次答案。输出答案后,程序必须立即终止。 如果程序违反指定的格式、超出询问次数或答案输出次数的限制,或者输出任何额外内容,则会被判为答案错误。注意,每次输出后可能需要刷新输出缓冲区。还需要注意,本题的交互器是非自适应的:交互器会在交互开始前确定 $S$。

输入格式

无

输出格式

无