I - Swap and Sort
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
正整数 K と長さ N の正整数列 A が与えらえます。あなたはこの数列に対して以下の操作を 5\times 10^5 回以下行えます。
- 整数 i\ (1 \le i \le N-1) を選ぶ。 A_i と A_{i+1} を swap したのち、 A_{i+1} に K を加算する。
最終的な数列が昇順、すなわち A_1 \le A_2 \le \ldots \le A_N となっているような操作列を一つ見つけてください。なお、この制約下においてこのような操作列が存在することが示せます。
制約
- 1 \leq N \leq 1000
- 1 \le K \le 10^9
- 1 \le A_i \le 10^9
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N K A_1 A_2 \ldots A_N
出力
操作回数を M (0 \le M \le 5\times 10^5) として、 M+1 行出力せよ。 1 行目には M を出力し、 k + 1\ (1 \le k \le M) 行目には k 回目に選んだ i を出力せよ。
入力例 1
4 1 1 3 1 2
出力例 1
2 2 3
iを2,3の順に選んで2回操作を行うことでA=(1,1,2,5)を得ることができます。
入力例 2
8 2 3 1 4 1 5 9 2 6
出力例 2
15 1 2 3 4 5 6 7 2 3 5 6 4 5 3 4