CF2086F Online Palindrome

题目描述

这是一个交互题。 裁判有一个由小写拉丁字母组成的字符串 $s$。该字符串满足以下约束条件: - 字符串长度为不超过 $99$ 的奇数; - 字符串仅由字符 "a" 和 "b" 组成。 另外有一个初始为空的字符串 $t$。接下来会进行 $|s|$ 个步骤。在第 $i$ 个步骤中,会发生以下事件: - 首先,裁判会告诉你字符 $s_i$ 并将其追加到字符串 $t$ 的末尾; - 然后,你可以交换 $t$ 中的任意两个字符,或者什么都不做。 你的任务是确保在第 $|s|$ 个步骤之后,字符串 $t$ 是一个回文串。

输入格式

输出格式

交互过程立即开始。 在每个步骤中,你的程序将接收一个字符——字符串 $s$ 的下一个字符,或者如果字符串已经结束则接收 "0"(零)。如果接收到字符 "0",你的程序必须立即终止。 在接收到 $s_{i}$ 后,你必须输出要交换的字符的位置,即两个整数 $l$ 和 $r$($1 \le l,r \le i$),或者如果你不想交换字符,则输出 "0 0"。 如果你的程序执行了无效操作,例如尝试交换不存在的字符位置,或者最终字符串 $t$ 不是回文串,裁判程序将在单独的一行打印一个字符 "X"。如果你的程序接收到 "X" 作为响应,它应该立即终止;否则,你的提交的判题结果将是未定义的。 本题的交互器不是自适应的,这意味着字符串 $s$ 在交互过程中不会改变。 在每次输出请求后,不要忘记输出换行符并刷新输出缓冲区。否则,你将收到 "Idleness limit exceeded" 的判题结果。为此,请使用: - C++ 中的 `fflush(stdout)` 或 `cout.flush()`; - Java 中的 `System.out.flush()`; - Python 中的 `sys.stdout.flush()`; - 其他语言请参考相关文档。 Hack 格式 对于 Hack,请使用以下格式。 第一行应包含一个整数 $|s|$ —— 字符串 $s$ 的长度。 第二行应包含字符串 $s$ 本身($1 \le |s| \le 99$,$|s| \bmod 2 = 1$),由小写拉丁字母 "a" 和 "b" 组成。

说明/提示

翻译由 DeepSeek V3 完成