翻译:
给出一个整数 N(2≤N≤100) 和一个从 0 开始的长度为 N 的排列 P=P0,P1,P2⋯PN−1,你可以进行以下操作:
- 选择一个整数 i(0≤i≤N−1)。
- 交换当前数列上的 Pi 与 P(i + Pi) mod N 两个位置上的数字。
求能否在 2×105 之内构造出一种操作方案使得整个序列单调上升,如果有,则在第一行输出操作个数 K,接下来 K 行,每行按顺序输出数列操作的位置 i,若没有,则输出 −1。
样例解释:
原序列为 7,1,2,6,4,0,5,3
我们可以进行 4 次操作:
- 对位置 6 进行操作则交换 P6 (=5) 和 P(6+5)mod8=P3 (=6) 两个数则此时序列变为 7,1,2,5,4,0,6,3
- 对位置 0 进行操作则交换 P0 (=7) 和 P(0+7)mod8=P7 (=3) 两个数则此时序列变为 3,1,2,5,4,0,6,7
- 对位置 3 进行操作则交换 P3 (=5) 和 P(3+5)mod8=P0 (=3) 两个数则此时序列变为 5,1,2,3,4,0,6,7
- 对位置 0 进行操作则交换 P0 (=5) 和 P(0+5)mod8=P5 (=0) 两个数则此时序列变为 0,1,2,3,4,5,6,7,此时该数列有序。