CF1523B.Lord of the Values

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

Lord of the Values

题目描述

在他最喜欢的交易所进行交易时,交易员 William 发现了一个漏洞。利用这个漏洞,他可以将某些内部变量的值更改为对自己有利的数值。为了好玩,他决定将所有内部变量的值从 a1,a2,,ana_1, a_2, \ldots, a_n 变为 a1,a2,,an-a_1, -a_2, \ldots, -a_n。出于某种未知的原因,服务变量的数量总是偶数。

William 明白,每进行一次操作,他就会引起交易所安全团队越来越多的注意,因此他的操作次数不能超过 50005\,000,并且每次操作后,任何变量的绝对值都不能超过 101810^{18}。William 可以对任意两个下标为 iijj 的变量进行如下两种类型的操作(其中 i<ji < j):

  1. 执行赋值 ai=ai+aja_i = a_i + a_j
  2. 执行赋值 aj=ajaia_j = a_j - a_i

William 希望你能帮他设计一个策略,使所有内部变量都变为目标值。

输入格式

每个测试点包含多个测试用例。第一行包含测试用例数量 tt1t201 \le t \le 20)。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个偶数 nn2n1032 \le n \le 10^3),表示内部变量的数量。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1091 \le a_i \le 10^9),表示内部变量的初始值。

输出格式

对于每个测试用例,输出如下格式的答案:

输出的第一行应为操作总数 kk,即策略需要执行的操作数。注意,你不需要最小化 kk,但必须满足 k5000k \le 5\,000

接下来的 kk 行,每行输出一个操作,格式为“type i j”,其中“type”为 11 表示执行第一种操作,“type”为 22 表示执行第二种操作。注意应满足 i<ji < j

可以证明,总是存在解。

说明/提示

对于第一个样例测试用例,一种可能的操作序列如下:

  1. "2 1 2"。执行操作后变量值为:[1, 0, 1, 1]
  2. "2 1 2"。执行操作后变量值为:[1, -1, 1, 1]
  3. "2 1 3"。执行操作后变量值为:[1, -1, 0, 1]
  4. "2 1 3"。执行操作后变量值为:[1, -1, -1, 1]
  5. "2 1 4"。执行操作后变量值为:[1, -1, -1, 0]
  6. "2 1 4"。执行操作后变量值为:[1, -1, -1, -1]
  7. "1 1 2"。执行操作后变量值为:[0, -1, -1, -1]
  8. "1 1 2"。执行操作后变量值为:[-1, -1, -1, -1]

对于第二个样例测试用例,一种可能的操作序列如下:

  1. "2 1 4"。执行操作后变量值为:[4, 3, 1, -2]
  2. "1 2 4"。执行操作后变量值为:[4, 1, 1, -2]
  3. "1 2 4"。执行操作后变量值为:[4, -1, 1, -2]
  4. "1 2 4"。执行操作后变量值为:[4, -3, 1, -2]
  5. "1 3 4"。执行操作后变量值为:[4, -3, -1, -2]
  6. "1 1 2"。执行操作后变量值为:[1, -3, -1, -2]
  7. "1 1 2"。执行操作后变量值为:[-2, -3, -1, -2]
  8. "1 1 4"。执行操作后变量值为:[-4, -3, -1, -2]

由 ChatGPT 4.1 翻译

样例

2
4
1 1 1 1
4
4 3 1 2
8
2 1 2
2 1 2
2 1 3
2 1 3
2 1 4
2 1 4
1 1 2
1 1 2
8
2 1 4
1 2 4
1 2 4
1 2 4
1 3 4
1 1 2
1 1 2
1 1 4

在线编程 IDE

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