Many Swaps Sorting
题目描述
[problemUrl]: https://atcoder.jp/contests/cf17-tournament-round2-open/tasks/asaporo2_b
すぬけくんは $ (0,1,2,\ ...,N-1) $ を並び替えて得られるような数列 $ p $ を持っています。 $ p $ の ($ 0 $-indexedでの) $ i $ 番目の数は $ p_i $ です。
すぬけくんは $ 1,2,...,N-1 $ の番号がついた $ N-1 $ 種類の操作を自由な順番で何度でも行うことができます。 $ k $ 番の操作を行うと以下のソースコードで表されるような処理が実行されます。
```
for(int i=k;i<N;i++)
swap(p[i],p[i-k]);
```
すぬけくんは操作を $ 0 $ 回以上 $ 10^{5} $ 回以下行って $ p $ を昇順に並び替えたいです。そのような操作手順の一例を示してください。 なお、この問題の制約下で、そのような操作手順が必ず存在することが証明できます。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ p_0 $ $ p_1 $ $ ... $ $ p_{N-1} $
输出格式
操作回数(これを $ m $ とする)を $ 1 $ 行目に出力せよ。 続く $ m $ 行のうち $ i $ 行目には $ i $ 番目に実行する操作の番号を出力せよ。 $ m $ が $ 10^5 $ 以下であり、$ m $ 回の操作後に$ p $ が昇順となっていれば正解となる。
输入输出样例
输入样例 #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
说明
### 制約
- $ 2\ \leq\ N\ \leq\ 200 $
- $ 0\ \leq\ p_i\ \leq\ N-1 $
- $ p $ は $ (0,1,2,...,N-1) $ を並び替えて得られる
### 部分点
- $ 300 $ 点分のデータセットでは $ N\ \leq\ 7 $ が成立する
- 別の $ 400 $ 点分のデータセットでは $ N\ \leq\ 30 $ が成立する
### Sample Explanation 1
\- 以下の図に各操作による $ p $ の変化を示します。 !\[9f3b51eb1fe742848f407bdeb7b772e1.png\](https://atcoder.jp/img/asaporo2/9f3b51eb1fe742848f407bdeb7b772e1.png)