#arc121c. [arc121_c]Odd Even Sort

[arc121_c]Odd Even Sort

题目描述

给定一个序列 pp,它是 (1,2,ldots,N)(1,2, \\ldots, N) 的一个排列。初始时,pp 的第 nn 个元素为 pnp_n

你的目标是要在最多 N2N^2 个“操作”内将 pp 按升序排序。在每个操作中,你需要进行以下更改:

  • 在第 1133 和之后的奇数次操作中,选择一个介于 11N1N-1(包括 11N1N-1)之间的奇数 nn,交换 pnp_npn+1p_{n+1}
  • 在第 2244 和之后的偶数次操作中,选择一个介于 22N1N-1(包括 22N1N-1)之间的偶数 nn,交换 pnp_npn+1p_{n+1}

我们可以证明,在本题的约束条件下,始终可以实现这个目标。找到一种操作序列,使得目标可以达成。

你将获得 TT 个测试用例,并需要解决每个测试用例。

约束条件

  • 输入中的所有值都是整数。
  • 1T2501 \leq T \leq 250
  • 2N5002 \leq N \leq 500
  • 1piN1 \leq p_i \leq N
  • pp(1,2,ldots,N)(1,2,\\ldots,N) 的一个排列。
  • 在一个输入文件中,NN 的和不会超过 500500

输入

从标准输入读入数据,格式如下:

TT case1\mathrm{case}_{1} \vdots caseT\mathrm{case}_{T}

每个测试用例的格式如下:

NN p1p_1 \cdots pNp_N

输出

对于每个测试用例,按照给定顺序,以以下格式打印出你的答案:

MM a1a_1 \cdots aMa_M

其中,MM 表示你的操作序列的长度,aia_i 表示你在第 ii 个操作中选择的整数。

如果对于每个测试用例,你的操作序列都能达到目标,则你的输出将被认为是正确的。


示例输入 1

2
5
2 1 3 5 4
2
1 2

示例输出 1

2
1 4
0

  • 这里是第 11 个测试用例的说明。
    • 在第 11 次操作中选择 11,使得 p=(1,2,3,5,4)p = (1,2,3,5,4)
    • 在第 22 次操作中选择 44,使得 p=(1,2,3,4,5)p = (1,2,3,4,5)
    • 注意,虽然 (1,4)(1,4) 是一个有效的操作序列,但 (4,1)(4,1) 不是。
  • 还要注意,允许不执行任何操作,而且不要求将操作次数最小化。