CF2229C1 We Be Flipping (Easy Version)

题目描述

这是该问题的简单版本。不同版本的区别在于本版本你需要最小化数组元素之和。只有在你完成了所有版本的问题后才可以尝试 hack。 你有一个长度为 $n$ 的数组 $a$,其中所有元素均为非零整数(但可能为负数)。你最多可以执行 $n$ 次(也可以一次都不执行)如下操作: - 选择一个下标 $i$($1 \le i \le n$),要求 $a_i > 0$; - 然后对于所有 $j$ 满足 $1 \le j \le i$,执行 $a_j := -a_j$。 请输出长度不超过 $n$ 的一个操作序列,使得最终 $a$ 的元素之和被$\color{red}{\text{最小化}}$。

输入格式

每组测试数据包含多组数据。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试数据的组数。 每组测试数据的第一行包含一个整数 $n$($2 \le n \le 2 \times 10^5$),表示数组 $a$ 的长度。 第二行包含 $n$ 个整数 $a_1,a_2,\ldots,a_n$($-10^9 \le a_i \le 10^9,\, a_i \ne 0$)。 保证所有测试数据中 $n$ 的总和不超过 $2 \times 10^5$。

输出格式

对于每组测试数据,首先输出一个整数 $k$($0 \le k \le n$),表示你将执行的操作次数。 接下来输出 $k$ 个整数 $b_1,\ldots,b_k$,其中 $b_i$ 表示你第 $i$ 次操作选择的下标。 所有操作结束后,$a$ 的元素之和应最小。

说明/提示

在第一个样例中,数组之和已经最小,因此不需要任何操作。 在第二个样例中,操作步骤如下: - $[-1, -2, 3, -5, 4] \xrightarrow{i = 3} [\color{red}{1, 2, -3}, -5, 4]$ - $[1, 2, -3, -5, 4] \xrightarrow{i = 5} [\color{red}{-1, -2, 3, 5, -4}]$ - $[-1, -2, 3, 5, -4] \xrightarrow{i = 4} [\color{red}{1, 2, -3, -5}, -4]$ - $[1, 2, -3, -5, -4] \xrightarrow{i = 2} [\color{red}{-1, -2}, -3, -5, -4]$ 最终得到的元素之和为 $-15$,这是最小可能值。 由 ChatGPT 5 翻译