CF1370B.GCD Compression

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

GCD Compression

题目描述

Ashish 有一个包含 2n2n 个正整数的数组 aa。他想将 aa 压缩成一个大小为 n1n-1 的数组 bb。为此,他首先从 aa 中恰好丢弃 22 个(任意两个)元素。然后,他重复执行以下操作,直到 aa 中没有剩余元素:

  • aa 中任意取出两个元素,将它们的和添加到 bb 中。

压缩后的数组 bb 需要满足一个特殊性质:它所有元素的最大公约数(gcd\mathrm{gcd})要大于 11

回忆一下,正整数数组的 gcd\mathrm{gcd} 是能整除数组中所有整数的最大整数。

可以证明,总是存在一种方式将数组 aa 压缩成大小为 n1n-1 的数组 bb,使得 gcd(b1,b2,,bn1)>1gcd(b_1, b_2, \ldots, b_{n-1}) > 1

请你帮助 Ashish 找到一种实现方式。

输入格式

第一行包含一个整数 tt1t101 \leq t \leq 10),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn2n10002 \leq n \leq 1000)。

每个测试用例的第二行包含 2n2n 个整数 a1,a2,,a2na_1, a_2, \ldots, a_{2n}1ai10001 \leq a_i \leq 1000),表示数组 aa 的元素。

输出格式

对于每个测试用例,输出 n1n-1 行,每行表示一次操作,将数组 aa 压缩成数组 bb。最初丢弃的两个元素不算操作,无需输出。

ii 行应包含两个整数,表示在第 ii 次操作中选取的 aa 数组中元素的下标(下标从 11 开始)。所有 2n22n-2 个下标应为 112n2n 之间的不同整数。

你不需要输出最初丢弃的两个元素的下标。

如果有多种答案,输出任意一种即可。

说明/提示

在第一个测试用例中,b={3+6,4+5}={9,9}b = \{3+6, 4+5\} = \{9, 9\},且 gcd(9,9)=9\mathrm{gcd}(9, 9) = 9

在第二个测试用例中,b={9+10}={19}b = \{9+10\} = \{19\},且 gcd(19)=19\mathrm{gcd}(19) = 19

在第三个测试用例中,b={1+2,3+3,4+5,90+3}={3,6,9,93}b = \{1+2, 3+3, 4+5, 90+3\} = \{3, 6, 9, 93\},且 gcd(3,6,9,93)=3\mathrm{gcd}(3, 6, 9, 93) = 3

由 ChatGPT 4.1 翻译

样例

3
3
1 2 3 4 5 6
2
5 7 9 10
5
1 3 3 4 5 90 100 101 2 3
3 6
4 5
3 4
1 9
2 3
4 5
6 10

在线编程 IDE

建议全屏模式获得最佳体验