luogu#P16559. [ICPC 2026 APC] Compare Suffixes
[ICPC 2026 APC] Compare Suffixes
题目描述
评测程序拥有一个长度为 的隐藏字符串 ,该字符串仅包含小写拉丁字母(a–z)。你无法直接访问这个字符串。开始时,你只知道字符串 的长度。
你的任务是通过有限次询问,确定所有 个后缀的排列顺序。
对于一个整数 (), 表示从第 个字符开始的 的后缀。特别地,。
在一次询问中,你可以指定两个不同的整数 和 。评测程序会按字典序比较 和 ,并返回 还是 。注意,对于 的情况,不会出现相等,因为所有后缀都是不同的。
请找出一个 的排列,使得 。
输入格式
交互方式
输入的第一行包含一个整数 ()。
要发出一个查询,你的程序应输出形式为“query ”的一行(;;)。随后,将出现一行输入,其中包含 first 或 second。包含 first 的行表示 ,而包含 second 的行表示 。
一旦确定了后缀的排序,你的程序应输出形式为 “answer ” 的行。之后,交互结束,你的程序应终止运行且不再输出任何内容。
你的程序最多可发出 次查询。若查询次数超过 次,将被判定为“答案错误”。
保证隐藏字符串 仅由小写字母(a–z)组成。
关于交互式评分的说明:
- 交互库不是自适应的,即字符串 是预先确定的,而非根据你的查询动态生成的。
- 写入输出缓冲区后,请务必清空缓冲区。
- 附件中为你提供了用于本地测试的命令行工具,以及与示例交互对应的输入文件。你可以下载这些文件。该工具顶部附有注释说明其使用方法。
4
first
second
first
query 2 1
query 2 4
query 1 3
answer 4 2 1 3
提示
样例交互解释 #1
在本样例中,假设 。四个后缀的字典序排列为 ,因为 。
在第一次和第三次询问中,返回 first,因为 并且 。在第二次询问中,返回 second,因为 。通过这些回复你可以确定各后缀的顺序。
由 ChatGPT 5 翻译