#asaporo2b. [asaporo2_b]Many Swaps Sorting
[asaporo2_b]Many Swaps Sorting
问题陈述
Snuke有一个序列,它是的一个排列。的第个元素(索引为)是。
他可以执行种操作,标号为,可以任意次数以任意顺序执行。当执行标号为的操作时,将执行以下代码:
for(int i=k;i<N;i++)
swap(p\[i\],p\[i-k\]);
他想要使用到(含)次操作对进行升序排序。请展示一种这样的操作序列。可以证明,在本问题的约束条件下,总是存在这样的操作序列。
约束条件
- 是的一个排列。
分部分得分
- 在价值为分的测试集中,。
- 在价值为分的另一个测试集中,。
输入
输入以以下格式从标准输入中给出:
输出
设你的解法中操作的数量为。在第一行中,输出。在接下来的行中,分别输出第个执行操作的标号。如果不超过且在执行这次操作后变为升序,则接受该解法。
样例输入 1
5
4 2 0 1 3
样例输出 1
4
2
3
1
2
每个操作将修改如下:
样例输入 2
9
1 0 4 3 5 6 2 8 7
样例输出 2
11
3
6
1
3
5
2
4
7
8
6
3