#ARC121C. 奇偶排序

奇偶排序

奇偶排序

时间限制:2s
空间限制:512MB

题目描述

给定一个 11 到 NN 的排列 pp。你需要在不超过 N2N^2 次操作内将它排成升序。

第奇数次操作可以选择一个奇数 ii,交换 pip_i 与 pi+1p_{i+1};第偶数次操作可以选择一个偶数 ii,交换 pip_i 与 pi+1p_{i+1}。每组数据的操作编号都从 11 重新开始计算。在本题限制下总能完成目标。

有 TT 组测试数据,请分别构造一种合法操作序列。

输入格式

第一行一个整数 TT。

每组数据先给出一个整数 NN,下一行给出排列 p1,p2,…,pNp_1,p_2,\ldots,p_N。

输出格式

对每组数据,先输出操作次数 MM,然后输出 MM 个整数 a1,a2,…,aMa_1,a_2,\ldots,a_M。其中 aka_k 表示第 kk 次操作交换当前位置 aka_k 与 ak+1a_k+1 的元素。

输出必须满足 0≤M≤N20\le M\le N^2、1≤ak<N1\le a_k<N,并且 aka_k 与 kk 的奇偶性相同。执行全部操作后,排列必须升序。若 M=0M=0,操作序列可以省略。

样例输入 1

2
5
2 1 3 5 4
2
1 2

样例输出 1

2
1 4
0

样例说明

第一组数据先交换位置 1,21,2,再交换位置 4,54,5,恰好分别满足奇数次选奇数位置、偶数次选偶数位置。第二组数据已经有序,不需要操作。

数据范围

  • 1≤T≤2501\le T\le 250;
  • 2≤N≤5002\le N\le 500;
  • pp 是 1,2,…,N1,2,\ldots,N 的一个排列;
  • 单个输入文件中所有 NN 之和不超过 500500。
子任务编号 分值 特殊限制
1 20 每组数据均有 N≤8N\le 8
2 排列仅由若干互不相交的相邻逆序对构成,按位置从左到右看,这些逆序对左端点的奇偶性从奇数开始交替
3 每组数据均有 N≤80N\le 80
4 40 无特殊限制

附件数据