#CF2162D. Beautiful Permutation
Beautiful Permutation
题目描述
这是一个交互式问题。
有一个长度为 的排列 。
某人秘密地选择了两个整数 (),并以如下方式修改了排列:
- 对于每一个满足 的下标 ,将 。
记 为经过上述修改后得到的数组。
给定整数 ,表示排列 的长度。
你可以进行一次查询,每次可以选择两个整数 (),并查询原始排列 的子数组和,或修改后数组 的子数组和。对于该查询,系统会返回对应的整数和。
你的任务是在不超过 次查询的情况下,找出用来获得 的一对 。
长度为 的排列是一个由 个互不相同、且范围在 至 之间的整数构成的数组。比如 是一个排列,但 不是排列(数字 出现了两次), 也不是排列(,但数组含有 )。
输入格式
输入第一行包含一个整数 (),表示测试用例的数量。
每个测试用例第一行为一个整数 (),表示排列的长度。
保证所有测试用例中 的总和不超过 。
输出格式
(本题为交互题,请根据题意与评测机进行交互,输出格式可参看样例,详细交互协议见题意。)
样例
2
3
4
5
4
8
8
9
1 1 2
2 1 2
! 2 2
1 2 4
2 1 3
2 3 4
! 2 4
样例说明
对于第一个测试用例,,且 ,。因此,修改后的数组 。
因此,查询“”返回 。查询“”返回 。
对于第二个测试用例,,且 , 。
注意,样例测试中给出的查询只是为了演示说明,并不一定对应最佳解法。
由 ChatGPT 5 翻译
来源
Codeforces 2162D,英文题名 Beautiful Permutation。