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)