CFCF2206A.Compare Suffixes
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
评测程序拥有一个长度为 n 的隐藏字符串 S ,该字符串仅包含小写拉丁字母(a–z)。你无法直接访问这个字符串。开始时,你只知道字符串 n 的长度。
你的任务是通过有限次询问,确定所有 n 个后缀的排列顺序。
对于一个整数 k (1≤k≤n),S(k) 表示从第 k 个字符开始的 S 的后缀。特别地,S(1)=S。
在一次询问中,你可以指定两个不同的整数 i 和 j。评测程序会按字典序比较 S(i) 和 S(j),并返回 S(i)<S(j) 还是 S(i)>S(j)。注意,对于 i=j 的情况,不会出现相等,因为所有后缀都是不同的。
请找出一个 (p1,p2,…,pn) 的排列,使得 S(p1)<S(p2)<⋯<S(pn)。
输入输出样例
输入#1
4 first second first
输出#1
query 2 1 query 2 4 query 1 3 answer 4 2 1 3
说明/提示
样例交互解释 #1
在本样例中,假设 S=icpc。四个后缀的字典序排列为 S(4)<S(2)<S(1)<S(3),因为 c<cpc<icpc<pc。
在第一次和第三次询问中,返回 first,因为 S(2)<S(1) 并且 S(1)<S(3)。在第二次询问中,返回 second,因为 S(2)>S(4)。通过这些回复你可以确定各后缀的顺序。