加法和平方运算并不满足交换律。也就是说,一个整数列表的所有元素之和的平方,并不一定等于这些元素各自的平方和。然而,对于某些列表,这个等式是成立的;例如 $[3, -2, 6]$,因为 $(3 + (-2) + 6)^2 = 49 = 3^2 + (-2)^2 + 6^2$。我们称这类列表为“平方列表”(squary)。
给定一个(不一定是平方列表的)较小整数列表,我们想知道是否可以添加至少 $1$ 个且最多 $K$ 个元素,使得最终的列表成为平方列表。每个添加的元素必须是 $-10^{18}$ 到 $10^{18}$(包含边界)之间的整数,这些元素不需要与彼此或初始列表中的元素不同。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例由两行描述。第一行包含两个整数 $N$ 和 $K$,分别表示初始列表的元素个数和允许添加的最大元素个数。第二行包含 $N$ 个整数 $E_1, E_2, \dots, E_N$,代表初始列表的元素。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 $1$ 开始)。如果可以通过向初始列表添加至少 $1$ 个且最多 $K$ 个元素(每个元素均为 $-10^{18}$ 到 $10^{18}$ 之间的整数)使得其所有元素的和的平方等于其所有元素的平方和,则 $y$ 应为 $z_1\ z_2\ \dots\ z_r$,其中 $1 \le r \le K$ 且 $z_i$ 是添加的元素。如果无法做到这一点,$y$ 应为 IMPOSSIBLE。
数据范围
内存限制:1 GB。 $1 \le T \le 100$。 $1 \le N \le 1000$。 $-1000 \le E_i \le 1000$,对于所有 $i$。
样例
样例输入 1
4 2 1 -2 6 2 1 -10 10 1 1 0 3 1 2 -2 2
样例输出 1
Case #1: 3 Case #2: IMPOSSIBLE Case #3: -1000000000000000000 Case #4: 2
说明 1
在样例 1 中,我们可以得到题目描述中给出的示例列表。
在样例 2 中,我们必须恰好添加一个元素。如果我们称该元素为 $x$,则整个列表的和为 $x$,其平方为 $x^2$。另一方面,所有元素的平方和为 $x^2 + 10^2 + (-10)^2 = x^2 + 200 \neq x^2$,因此该情况是不可能的。
在样例 3 中,区间 $[-10^{18}, 10^{18}]$ 内的任何整数都是有效答案。
在样例 4 中,注意输入可能包含重复元素,并且使用你选择添加的元素创建更多重复项是有效的。
附加样例 - 测试集 2
以下附加样例符合测试集 2 的限制。它不会针对你的提交进行运行。
样例输入 2
3 3 10 -2 3 6 6 2 -2 2 1 -2 4 -1 1 12 -5
样例输出 2
Case #1: 0 Case #2: -1 15 Case #3: 1 1 1 1 1 1 1 1 1 1 1
说明 2
在附加样例的第 1 种情况中,我们给出了题目描述中的示例列表,它已经是平方列表,但我们需要向其添加至少一个元素。添加一个 $0$ 可以保持列表为平方列表。
在附加样例的第 3 种情况中,我们给出了多个可能有效答案中的一个。注意,添加少于 $K$ 个元素是允许的;这里 $K$ 是 $12$,但我们只添加了 $11$ 个元素。
Figure 1. 列表 [3, -2, 6] 的平方列表性质示例