CF2086F.Online Palindrome
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是一个交互题。
裁判有一个由小写拉丁字母组成的字符串 s。该字符串满足以下约束条件:
- 字符串长度为不超过 99 的奇数;
- 字符串仅由字符 "a" 和 "b" 组成。
另外有一个初始为空的字符串 t。接下来会进行 ∣s∣ 个步骤。在第 i 个步骤中,会发生以下事件:
- 首先,裁判会告诉你字符 si 并将其追加到字符串 t 的末尾;
- 然后,你可以交换 t 中的任意两个字符,或者什么都不做。
你的任务是确保在第 ∣s∣ 个步骤之后,字符串 t 是一个回文串。
输出格式
交互过程立即开始。
在每个步骤中,你的程序将接收一个字符——字符串 s 的下一个字符,或者如果字符串已经结束则接收 "0"(零)。如果接收到字符 "0",你的程序必须立即终止。
在接收到 si 后,你必须输出要交换的字符的位置,即两个整数 l 和 r(1≤l,r≤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≤∣s∣≤99,∣s∣mod2=1),由小写拉丁字母 "a" 和 "b" 组成。
输入输出样例
输入#1
a a b 0
输出#1
0 0 1 2 2 3
输入#2
a a b a b 0
输出#2
0 0 2 1 3 2 4 4 4 5
说明/提示
翻译由 DeepSeek V3 完成
输入解题思路,AI测评打分。不知道怎么写?