CF1637G Birthday
题目描述
Vitaly 送给 Maxim $n$ 个数 $1, 2, \ldots, n$ 作为他 $16$ 岁生日的礼物。Maxim 在庆祝时厌倦了玩桌游,于是决定用这些数字来玩。在每一步操作中,Maxim 可以从手中的数字中选择两个数 $x$ 和 $y$,将它们移除,并加入两个数 $x + y$ 和 $|x - y|$。他希望经过若干步操作后,所有数字都相等,并且这些数字的和最小。
请你帮助 Maxim 找到一种方案。Maxim 的朋友们不想等太久,所以方案中的操作步数不能超过 $20n$。保证在给定的限制下,如果存在可行解,则一定存在一种方案能使所有数字相等、和最小,并且操作步数不超过 $20n$。
输入格式
第一行包含一个整数 $t$($1 \le t \le 25000$),表示测试用例的数量。
每个测试用例包含一个整数 $n$($2 \le n \le 5 \cdot 10^4$),表示 Maxim 拥有的数字个数。
保证所有测试用例中 $n$ 的总和不超过 $5 \cdot 10^4$。
输出格式
对于每个测试用例,如果无法使所有数字相等,输出 $-1$。
否则,输出一个整数 $s$($0 \le s \le 20n$),表示操作步数。接下来输出 $s$ 行,每行两个整数 $x_i$ 和 $y_i$,表示 Maxim 在第 $i$ 步选择的两个数字。所有操作结束后,所有数字必须相等。
注意,你不仅需要让所有数字相等,还要使它们的和最小。保证在给定的限制下,如果存在可行解,则一定存在一种方案能使所有数字相等、和最小,并且操作步数不超过 $20n$。
说明/提示
由 ChatGPT 4.1 翻译