CF1282D Enchanted Artifact

题目描述

这是一个交互题。 在完成了魔法神庙的最后一关后,你获得了一个强大的第 255 级神器。不要急于庆祝,因为这个神器上有一个强大的符文,可以被一个咒语 $s$ 一击摧毁,而你需要找到这个咒语。 我们将咒语定义为仅由字母 a 和 b 组成的非空字符串。 你可以随时施放任意非空咒语 $t$,神器上的符文会开始抵抗。符文的抵抗力等于你施放的咒语 $t$ 与摧毁符文的咒语 $s$ 之间的编辑距离。 [编辑距离](https://en.wikipedia.org/wiki/Levenshtein_distance) 是指将字符串 $s$ 通过最少的单字符替换、插入和删除操作变为字符串 $t$ 所需的操作数。例如,ababa 和 aaa 之间的距离为 $2$,aaa 和 aba 之间的距离为 $1$,bbaba 和 abb 之间的距离为 $3$。仅当两个字符串相等时,编辑距离为 $0$。 还需要注意,神器有抵抗极限——如果你施放的咒语次数超过 $n+2$ 次($n$ 为咒语 $s$ 的长度),符文会被封锁。 因此,你最多只能用 $n+2$ 次咒语摧毁神器上的符文。请注意,最终的摧毁性咒语 $s$ 也要计入这 $n+2$ 次咒语之内。 需要注意的是,你并不知道摧毁符文的咒语 $s$ 的长度 $n$,只知道 $n$ 不超过 $300$。

输入格式

无输入。

输出格式

通过交互进行询问。 每次询问由一个非空字符串 $t$ 组成——你想要施放的咒语。字符串 $t$ 的长度不能超过 $300$,且只能包含字母 a 和 b。 对于每次询问,你将收到符文的抵抗力——即你施放的咒语 $t$ 与秘密摧毁符文的咒语 $s$ 之间的编辑距离。请记住,$s$ 只包含字母 a 和 b。 当你收到抵抗力为 $0$ 的回复时,说明符文已被摧毁,你的程序应立即正常结束。 在本题中,交互器是非自适应的。这意味着在任何测试过程中,摧毁符文的咒语 $s$ 都不会改变。 如果你的询问不合法,将返回 $-1$。收到 $-1$ 后,你的程序应立即正常终止(例如调用 exit(0)),否则评测系统可能会给出任意判定。 如果咒语次数超过限制(即 $n+2$,其中 $n$ 为咒语 $s$ 的长度,且你并不知道 $n$),你将收到 Wrong Answer 判定。 如果你没有输出任何内容或忘记刷新输出缓冲区,可能会收到 Idleness Limit Exceeded 判定。 在每次输出询问和换行后,请立即刷新输出缓冲区: - C++:fflush(stdout) 或 cout.flush() - Java:System.out.flush() - Pascal:flush(output) - Python:stdout.flush() - 其他语言请查阅相关文档。 Hacks 对于 Hack,请使用以下格式: 在一行内输出字符串 $s$($1 \le |s| \le 300$),即定义摧毁符文的咒语。被 Hack 的解答无法直接访问未知的咒语。

说明/提示

由 ChatGPT 4.1 翻译