#arc086b. [arc086_b]Non-decreasing

[arc086_b]Non-decreasing

题目描述

Snuke有一个长度为NN的整数序列aaaa的第ii个元素(从1开始)是aia_i

他可以任意多次执行以下操作:

  • 操作:选择11NN之间(包括11NN)的整数xxyy,将axa_x加到aya_y上。

他希望执行这个操作002N2N次(包括)以满足下面的条件。显示一个符合条件的操作序列。在这个问题的约束条件下,可以证明这样的操作序列总是存在的。

  • 条件: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为你解决方案中操作的次数。在第一行打印mm。在接下来的mm行中,每行打印第ii次操作中选择的xxyy,两个数字之间用空格隔开。如果mm介于002N2N之间(包括),并且在mm次操作后aa满足条件,则输出将被认为是正确的。


示例输入1

3
-2 5 -1

示例输出1

2
2 3
3 3
  • 第一次操作后,a=(2,5,4)a = (-2,5,4)
  • 第二次操作后,a=(2,5,8)a = (-2,5,8),并且现在满足条件。

示例输入2

2
-1 -3

示例输出2

1
2 1
  • 第一次操作后,a=(4,3)a = (-4,-3),并且现在满足条件。

示例输入3

5
0 0 0 0 0

示例输出3

0
  • 初始状态下已经满足条件。