#P1869A. Make It Zero

    ID: 8661 Type: RemoteJudge 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>constructive algorithms

Make It Zero

No submission language available for this problem.

Description

During Zhongkao examination, Reycloer met an interesting problem, but he cannot come up with a solution immediately. Time is running out! Please help him.

Initially, you are given an array aa consisting of n2n \ge 2 integers, and you want to change all elements in it to 00.

In one operation, you select two indices ll and rr (1lrn1\le l\le r\le n) and do the following:

  • Let s=alal+1ars=a_l\oplus a_{l+1}\oplus \ldots \oplus a_r, where \oplus denotes the bitwise XOR operation;
  • Then, for all lirl\le i\le r, replace aia_i with ss.

You can use the operation above in any order at most 88 times in total.

Find a sequence of operations, such that after performing the operations in order, all elements in aa are equal to 00. It can be proven that the solution always exists.

The first line of input contains a single integer tt (1t5001\le t\le 500) — the number of test cases. The description of test cases follows.

The first line of each test case contains a single integer nn (2n1002\le n\le 100) — the length of the array aa.

The second line of each test case contains nn integers a1,a2,,ana_1,a_2,\ldots,a_n (0ai1000\le a_i\le 100) — the elements of the array aa.

For each test case, in the first line output a single integer kk (0k80\le k\le 8) — the number of operations you use.

Then print kk lines, in the ii-th line output two integers lil_i and rir_i (1lirin1\le l_i\le r_i\le n) representing that you select lil_i and rir_i in the ii-th operation.

Note that you do not have to minimize kk. If there are multiple solutions, you may output any of them.

Input

The first line of input contains a single integer tt (1t5001\le t\le 500) — the number of test cases. The description of test cases follows.

The first line of each test case contains a single integer nn (2n1002\le n\le 100) — the length of the array aa.

The second line of each test case contains nn integers a1,a2,,ana_1,a_2,\ldots,a_n (0ai1000\le a_i\le 100) — the elements of the array aa.

Output

For each test case, in the first line output a single integer kk (0k80\le k\le 8) — the number of operations you use.

Then print kk lines, in the ii-th line output two integers lil_i and rir_i (1lirin1\le l_i\le r_i\le n) representing that you select lil_i and rir_i in the ii-th operation.

Note that you do not have to minimize kk. If there are multiple solutions, you may output any of them.

Sample Input 1

6
4
1 2 3 0
8
3 1 4 1 5 9 2 6
6
1 5 4 1 4 7
5
0 0 0 0 0
7
1 1 9 9 0 1 8
3
100 100 0

Sample Output 1

1
1 4
2
4 7
1 8
6
1 2
3 4
5 6
1 3
4 6
1 6
0
4
1 2
6 7
3 4
6 7
1
1 2

Note

In the first test case, since 1230=01\oplus2\oplus3\oplus0=0, after performing the operation on segment [1,4][1,4], all the elements in the array are equal to 00.

In the second test case, after the first operation, the array becomes equal to [3,1,4,15,15,15,15,6][3,1,4,15,15,15,15,6], after the second operation, the array becomes equal to [0,0,0,0,0,0,0,0][0,0,0,0,0,0,0,0].

In the third test case:

Operationaa beforeaa after
11[1,5,4,1,4,7][\underline{1,5},4,1,4,7]\rightarrow[4,4,4,1,4,7][4,4,4,1,4,7]
22[4,4,4,1,4,7][4,4,\underline{4,1},4,7]\rightarrow[4,4,5,5,4,7][4,4,5,5,4,7]
33[4,4,5,5,4,7][4,4,5,5,\underline{4,7}]\rightarrow[4,4,5,5,3,3][4,4,5,5,3,3]
44[4,4,5,5,3,3][\underline{4,4,5},5,3,3]\rightarrow[5,5,5,5,3,3][5,5,5,5,3,3]
55[5,5,5,5,3,3][5,5,5,\underline{5,3,3}]\rightarrow[5,5,5,5,5,5][5,5,5,5,5,5]
66[5,5,5,5,5,5][\underline{5,5,5,5,5,5}]\rightarrow[0,0,0,0,0,0][0,0,0,0,0,0]

In the fourth test case, the initial array contains only 00, so we do not need to perform any operations with it.