QOJ.ac

QOJ

Limite de temps : 5 s Limite de mémoire : 1024 MB Points totaux : 31

#12483. 平方数

Statistiques

加法和平方运算并不满足交换律。也就是说,一个整数列表的所有元素之和的平方,并不一定等于这些元素各自的平方和。然而,对于某些列表,这个等式是成立的;例如 $[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] 的平方列表性质示例

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.