#arc121c. [arc121_c]Odd Even Sort
[arc121_c]Odd Even Sort
题目描述
给定一个序列 ,它是 的一个排列。初始时, 的第 个元素为 。
你的目标是要在最多 个“操作”内将 按升序排序。在每个操作中,你需要进行以下更改:
- 在第 、 和之后的奇数次操作中,选择一个介于 到 (包括 和 )之间的奇数 ,交换 和 。
- 在第 、 和之后的偶数次操作中,选择一个介于 到 (包括 和 )之间的偶数 ,交换 和 。
我们可以证明,在本题的约束条件下,始终可以实现这个目标。找到一种操作序列,使得目标可以达成。
你将获得 个测试用例,并需要解决每个测试用例。
约束条件
- 输入中的所有值都是整数。
- 是 的一个排列。
- 在一个输入文件中, 的和不会超过 。
输入
从标准输入读入数据,格式如下:
每个测试用例的格式如下:
输出
对于每个测试用例,按照给定顺序,以以下格式打印出你的答案:
其中, 表示你的操作序列的长度, 表示你在第 个操作中选择的整数。
如果对于每个测试用例,你的操作序列都能达到目标,则你的输出将被认为是正确的。
示例输入 1
2
5
2 1 3 5 4
2
1 2
示例输出 1
2
1 4
0
- 这里是第 个测试用例的说明。
- 在第 次操作中选择 ,使得 。
- 在第 次操作中选择 ,使得 。
- 注意,虽然 是一个有效的操作序列,但 不是。
- 还要注意,允许不执行任何操作,而且不要求将操作次数最小化。