33OJ
登录 注册

#P17578. [JAG 2026 Summer Camp #3] Guess Palindrome

    ID: 20286 远端评测题 2000ms 2048MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>字符串交互题Special JudgeICPC2026

[JAG 2026 Summer Camp #3] Guess Palindrome

题目描述

Alice 有一个隐藏的字符串 SS,长度为 NN,仅由 a 和 b 两种字符组成。由于她喜欢对称的字符串,已知 SS 是一个回文串。你的任务是通过向 Alice 提出以下类型的询问来确定 SS:

  • 你给出一个任意的非空字符串 TT,其长度不超过 NN,且仅由 a 和 b 组成。
  • Alice 回答一个整数,表示 TT 作为连续子串在 SS 中出现的次数。相互重叠的出现也会被计数。

然而,为了不让 Alice 不高兴,你最多只能询问 ⌊N/2⌋\lfloor N/2\rfloor 次。

请编写一个程序,在给定的询问次数限制内确定隐藏字符串 SS。

交互方式

首先,从标准输入读入 SS 的长度 NN(2≤N≤1002\le N\le100)。

读入后,你可以开始询问。对于使用字符串 TT 的询问,向标准输出打印以下格式,其中 TT 必须是长度不超过 NN、仅由 a 和 b 组成的非空字符串。

? T

作为该询问的回复,标准输入会给出一个整数,表示 TT 作为连续子串在 SS 中出现的次数。

确定 SS 后,按照以下格式向标准输出打印答案。

! S

你最多可以进行 ⌊N/2⌋\lfloor N/2\rfloor 次询问,并且必须恰好输出一次答案。输出答案后,程序必须立即终止。

如果程序违反指定的格式、超出询问次数或答案输出次数的限制,或者输出任何额外内容,则会被判为答案错误。注意,每次输出后可能需要刷新输出缓冲区。还需要注意,本题的交互器是非自适应的:交互器会在交互开始前确定 SS。

9

1

1

4

? aabb

? baa

? aa

! bbaaaaabb