100813: [AtCoder]ABC081 D - Non-decreasing

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $600$ points

Problem Statement

Snuke has an integer sequence, $a$, of length $N$. The $i$-th element of $a$ ($1$-indexed) is $a_{i}$.

He can perform the following operation any number of times:

  • Operation: Choose integers $x$ and $y$ between $1$ and $N$ (inclusive), and add $a_x$ to $a_y$.

He would like to perform this operation between $0$ and $2N$ times (inclusive) so that $a$ satisfies the condition below. Show one such sequence of operations. It can be proved that such a sequence of operations always exists under the constraints in this problem.

  • Condition: $a_1 \leq a_2 \leq ... \leq a_{N}$

Constraints

  • $2 \leq N \leq 50$
  • $-10^{6} \leq a_i \leq 10^{6}$
  • All input values are integers.

Input

Input is given from Standard Input in the following format:

$N$
$a_1$ $a_2$ $...$ $a_{N}$

Output

Let $m$ be the number of operations in your solution. In the first line, print $m$. In the $i$-th of the subsequent $m$ lines, print the numbers $x$ and $y$ chosen in the $i$-th operation, with a space in between. The output will be considered correct if $m$ is between $0$ and $2N$ (inclusive) and $a$ satisfies the condition after the $m$ operations.


Sample Input 1

3
-2 5 -1

Sample Output 1

2
2 3
3 3
  • After the first operation, $a = (-2,5,4)$.
  • After the second operation, $a = (-2,5,8)$, and the condition is now satisfied.

Sample Input 2

2
-1 -3

Sample Output 2

1
2 1
  • After the first operation, $a = (-4,-3)$ and the condition is now satisfied.

Sample Input 3

5
0 0 0 0 0

Sample Output 3

0
  • The condition is satisfied already in the beginning.

Input

题意翻译

一个 $N$ 个元素的整数序列,第 $i$ 项为 $a_i$。 小A可以做以下操作若干次: - 选择两个整数 $i$ 和 $j$,将 $a_i$ 加到 $a_j$ 上去。 小A需要操作最多 $2N$ 次(也可能是 $0$ 次),以使得整数序列满足以下条件: - $a_1 \le a_2 \le … \le a_N$ 可以证明,上述操作序列一定存在。请输出小A的操作序列。

加入题单

算法标签: