atcoder#ARC086B. [ABC081D] Non-decreasing

[ABC081D] Non-decreasing

配点 : 600600

問題文

すぬけ君は長さ NN の数列 aa を持っています。aa の (11-indexedでの) ii 番目の数は aia_{i} です。

すぬけ君は以下の操作を何度でも行うことができます。

  • 操作:11 以上 NN 以下の整数 x,yx,y を選び、aya_yaxa_x を加算する。

すぬけ君はこの操作を 00 回以上 2N2N 回以下行って aa が下記の条件を満たすようにしたいです。そのような操作手順の一例を示してください。 なお、この問題の制約下で、条件を満たすような操作の手順が必ず存在することが証明できます。

  • 条件:a1a2...aNa_1 \leq a_2 \leq ... \leq a_{N}

制約

  • 2N502 \leq N \leq 50
  • 106ai106-10^{6} \leq a_i \leq 10^{6}
  • 与えられる入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN

a1a_1 a2a_2 ...... aNa_{N}

出力

操作回数(これを mm とする)を 11 行目に出力せよ。 続く mm 行のうち ii 行目には ii 番目の操作で選んだ数 x,yx,y を空白区切りで出力せよ。 mm00 以上 2N2N 以下であり、mm 回の操作後に aa が条件を満たしていれば正解となる。

3
-2 5 -1
2
2 3
3 3
  • 11 番目の操作により a=(2,5,4)a = (-2,5,4) となります
  • 22 番目の操作により a=(2,5,8)a = (-2,5,8) となり、条件を満たします
2
-1 -3
1
2 1
  • 11 番目の操作により a=(4,3)a = (-4,-3) となり、条件を満たします
5
0 0 0 0 0
0
  • すでに条件を満たしています