310583: CF1855C1. Dual (Easy Version)
Description
The only difference between the two versions of this problem is the constraint on the maximum number of operations. You can make hacks only if all versions of the problem are solved.
You are given an array $a_1, a_2,\dots, a_n$ of integers (positive, negative or $0$). You can perform multiple operations on the array (possibly $0$ operations).
In one operation, you choose $i, j$ ($1 \leq i, j \leq n$, they can be equal) and set $a_i := a_i + a_j$ (i.e., add $a_j$ to $a_i$).
Make the array non-decreasing (i.e., $a_i \leq a_{i+1}$ for $1 \leq i \leq n-1$) in at most $50$ operations. You do not need to minimize the number of operations.
InputEach test contains multiple test cases. The first line contains the number of test cases $t$ ($1 \le t \le 500$). The description of the test cases follows.
The first line contains a single integer $n$ ($1 \le n \le 20$) — the length of the array.
The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($-20 \le a_i \le 20$) — the array before performing the operations.
OutputFor each test case, output your operations in the following format.
The first line should contain an integer $k$ ($0 \le k \le 50$) — the number of operations.
The next $k$ lines represent the $k$ operations in order. Each of these $k$ lines should contain two integers $i$ and $j$ ($1 \leq i, j \leq n$) — the corresponding operation consists in adding $a_j$ to $a_i$.
After all the operations, the array $a_1, a_2,\dots, a_n$ must be non-decreasing.
ExampleInput10 2 2 1 4 1 2 -10 3 5 2 1 1 1 1 8 0 0 0 0 0 0 0 0 5 1 2 -4 3 -10 10 11 12 13 14 15 -15 -16 -17 -18 -19 7 1 9 3 -4 -3 -2 -1 3 10 9 8 20 1 -14 2 -10 6 -5 10 -13 10 7 -14 19 -5 19 1 18 -16 -7 12 8 20 -15 -17 -13 8 14 -13 10 -4 11 -4 -16 -6 15 -4 -2 7 -9 5 -5 17Output
1 2 1 3 4 4 4 4 3 4 4 2 1 3 1 4 1 5 1 0 7 3 4 3 4 5 4 5 4 5 4 5 4 5 4 15 6 1 6 1 6 1 7 2 7 2 7 2 8 3 8 3 8 3 9 4 9 4 9 4 10 5 10 5 10 5 8 3 4 3 4 2 4 2 4 2 4 2 4 1 4 1 4 3 2 1 3 1 3 1 31 14 1 18 7 13 11 15 11 6 4 5 17 19 6 19 12 10 5 11 12 1 17 15 19 16 10 14 2 16 11 20 7 7 6 9 5 3 6 6 14 17 18 18 14 12 3 17 16 8 18 13 16 9 8 14 8 16 2 11 8 12 7 31 5 12 19 13 9 1 5 17 18 19 6 16 15 8 6 9 15 14 7 10 19 7 17 20 14 4 15 20 4 3 1 8 16 12 16 15 5 6 12 10 11 15 20 3 20 19 13 14 11 14 18 10 7 3 12 17 4 7 13 2 11 13Note
In the first test case, by adding $a_1 = 2$ to $a_2$, we get the array $[2, 3]$ which is non-decreasing.
In the second test case, the array changes as:
- $[1, 2, -10, 3]$
- $[1, 2, -10, 6]$
- $[1, 2, -10, 12]$
- $[1, 2, 2, 12]$
In the third test case, the final array is $[2, 3, 3, 3, 3]$.
Input
Output
输入数据格式:第一行是一个整数t,表示测试用例的数量。每个测试用例包含两行,第一行是一个整数n,表示数组的长度,第二行包含n个整数,表示数组的初始值。
输出数据格式:对于每个测试用例,第一行是一个整数k,表示操作的次数。接下来k行,每行包含两个整数i和j,表示将位置j的值加到位置i上。最后,数组的值必须是递增的。题目大意:给定一个整数的数组,通过最多50次操作,使得数组变为非递减序列。每次操作可以选择数组中的两个位置,将其中一个位置的值加到另一个位置上。 输入数据格式:第一行是一个整数t,表示测试用例的数量。每个测试用例包含两行,第一行是一个整数n,表示数组的长度,第二行包含n个整数,表示数组的初始值。 输出数据格式:对于每个测试用例,第一行是一个整数k,表示操作的次数。接下来k行,每行包含两个整数i和j,表示将位置j的值加到位置i上。最后,数组的值必须是递增的。