2872 - 排序

题目描述

N 个整数,值为 1 \dots N

现给出 N 个整数的一种排列的结果,请按照如下规则将数列调整为有序数列:

  1. 每次只能将第 1 个数向后移动 K 步;

  2. 要求按最少的次数移动。

比如:有数列 2 1 4 3

可以先让第 1 个数 2 向后移动 2 步,得到:

1 4 2 3

再让数字 1 向后移动 1 步,得到:

4 1 2 3

再让数字 4 向后移动 3 步,得到:

1 2 3 4

经过最少 3 次移动,可以使得数组有序。

输入

1 行读入整数 N,代表数组的元素数量;

2 行读入 N 个整数 A_1 \dots A_N

输出

1 行输出一个整数,代表最少的移动次数;

2 行输出若干整数,代表每次移动,第 1 个整数向后需要移动的步数。

样例

输入

4
2 1 4 3

输出

3
2 1 3
说明

数据范围

对于 100\% 的数据,1 \le N \le 10^5

来源

东方博宜OJ

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 57
通过人数 44
金币数量 3 枚
难度 提高


上一题 下一题