| Codeforces Round 1011 (Div. 2) |
|---|
| Finished |
You are given an array $$$a$$$ consisting of $$$n\ge 4$$$ non-negative integers.
You need to perform the following operation on $$$a$$$ until its length becomes $$$1$$$:
Serval wants the final element in $$$a$$$ to be $$$0$$$. Help him!
More formally, you have to find a sequence of operations, such that after performing these operations in order, the length of $$$a$$$ becomes $$$1$$$, and the final element in $$$a$$$ is $$$0$$$.
It can be shown that at least one valid operation sequence exists under the constraints of the problem, and the length of any valid operation sequence does not exceed $$$n$$$.
Note that you do not need to minimize the number of operations.
$$$^{\text{∗}}$$$The minimum excluded (MEX) of a collection of integers $$$b_1, b_2, \ldots, b_k$$$ is defined as the smallest non-negative integer $$$x$$$ which does not occur in the collection $$$b$$$.
Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 1000$$$). The description of the test cases follows.
The first line of each test case contains a single integer $$$n$$$ ($$$4\le n\le 5000$$$) — the length of the array $$$a$$$.
The second line contains $$$n$$$ integers $$$a_1, a_2, \ldots, a_n$$$ ($$$0\le a_i\le n$$$) — the elements of the array $$$a$$$.
It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$5000$$$.
For each test case, output a single integer $$$k$$$ ($$$0\le k\le n$$$) in the first line of output — the length of the operation sequence.
Then, output $$$k$$$ lines, the $$$i$$$-th line containing two integers $$$l_i$$$ and $$$r_i$$$ ($$$1\le l_i \lt r_i\le |a|$$$) — the two indices you choose in the $$$i$$$-th operation, where $$$|a|$$$ denotes the length of the array before this operation.
If there are multiple answers, you may print any of them.
641 2 3 450 1 0 0 160 0 0 0 0 065 4 3 2 1 040 0 1 141 0 0 0
1 1 4 4 1 2 1 2 1 2 1 2 4 5 6 3 4 1 2 1 3 3 4 5 4 5 1 4 2 1 2 1 3 2 2 4 1 2
In the first test case, since $$$\operatorname{mex}([1,2,3,4])=0$$$, after the only operation, the array becomes $$$[0]$$$.
In the second test case, the array $$$a$$$ changes as follows: $$$$$$ [\underline{0,1},0,0,1]\to [\underline{2,0},0,1]\to [\underline{1,0},1]\to [\underline{2,1}]\to [0]. $$$$$$
In the third test case, the array $$$a$$$ changes as follows: $$$$$$ [0,0,0,0,\underline{0,0}]\to [0,0,\underline{0,0},1]\to [\underline{0,0},1,1]\to [\underline{1,1,1}]\to [0]. $$$$$$
| Name |
|---|


