QOJ.ac

QOJ

Límite de tiempo: 30 s Límite de memoria: 1024 MB Puntuación total: 31

#12453. 子嬗变

Estadísticas

作为你国内最顶尖的炼金术士,你再次被召见,因为国家领导人对稀有金属的贪婪与日俱增,需要超越科学的力量来满足他。

每种金属都用一个正整数表示。你需要制造 $U_1$ 单位的金属 $1$,$U_2$ 单位的金属 $2$,……以及 $U_N$ 单位的金属 $N$。金属 $N+1, N+2, \dots$ 确实存在,但你不需要制造特定数量的它们。你可以制造任意金属的过剩量,这些过剩量可以直接丢弃。

不幸的是,预算削减使你只剩下一种简单炼金术的材料。对于某些固定的数字 $A$ 和 $B$(满足 $A < B$),你可以取一个单位的金属 $i$,将其销毁以制造一个单位的金属 $(i - A)$ 和一个单位的金属 $(i - B)$。如果这两个整数中的任何一个不是正数,则不会创建该特定单位。特别地,如果 $i \le A$,该法术只会销毁该单位而不产生任何东西。如果 $A < i \le B$,该法术会销毁该单位并仅产生一个单位的金属 $(i - A)$。

你被指派了一名专家矿工来协助你。专家矿工可以为你获取任意一种金属的单个单位。从该单位开始,你可以使用你的法术来制造其他金属,然后对产生的金属再次使用法术以制造更多的单位。下图展示了使用 $A = 1$ 和 $B = 2$ 的两个法术,将一个单位的金属 $4$ 转化为一个单位的金属 $1$ 和两个单位的金属 $2$ 的过程。

由较大整数表示的金属更重,更难处理,因此你想让专家矿工为你提供一个由尽可能小的整数表示的金属单位,该单位足以完成你的任务,或者说明不存在这样的金属。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含两行。第一行包含三个整数 $N, A, B$,分别表示你需要制造的最大金属编号,以及定义上述可用法术的两个值。第二行包含 $N$ 个整数 $U_1, U_2, \dots, U_N$,分别表示所需的金属 $1, 2, \dots, N$ 的单位数量。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 $1$ 开始),如果无法从单个金属单位开始制造所有所需的单位,则 $y$ 为 IMPOSSIBLE。否则,$y$ 是足以制造所有所需金属单位的最小整数所代表的金属。

数据范围

$1 \le T \le 100$ $1 \le N \le 20$ $0 \le U_i \le 20$,对于所有 $i$ $1 \le U_N$ $2 \le U_1 + U_2 + \dots + U_N$

子任务

测试集 1(可见判定) $A = 1$ $B = 2$

测试集 2(隐藏判定) $1 \le A < B \le 20$

样例

样例输入 1

3
2 1 2
1 2
5 1 2
2 0 0 0 1
3 1 2
1 1 1

样例输出 1

Case #1: 4
Case #2: 6
Case #3: 5

说明

在样例 1 中,我们需要一个单位的金属 $1$ 和两个单位的金属 $2$。如果我们从一个单位的金属 $3$ 开始,那么施放一次法术将给我们一个单位的金属 $1$ 和一个单位的金属 $2$。没有办法获得额外的金属 $2$。同样,从单个金属 $1$ 或 $2$ 开始也不够。然而,单个金属 $4$ 是足够的,正如题目主要部分的图片所示。

在样例 2 中,我们可以从一个单位的金属 $6$ 开始,并进行以下操作: 对 $6$ 施法:$\{6\} \longrightarrow \{4, 5\}$。 对 $4$ 施法:$\{4, 5\} \longrightarrow \{2, 3, 5\}$。 对 $2$ 施法:$\{2, 3, 5\} \longrightarrow \{1, 3, 5\}$。 对 $3$ 施法:$\{1, 3, 5\} \longrightarrow \{1, 1, 2, 5\}$。

注意,即使我们多出了一个金属 $2$,这个方案也是有效的。

在样例 3 中,我们可以从一个单位的金属 $5$ 开始,并进行以下操作: 对 $5$ 施法:$\{5\} \longrightarrow \{3, 4\}$。 对 $4$ 施法:$\{3, 4\} \longrightarrow \{2, 3, 3\}$。 对 $2$ 施法:$\{2, 3, 3\} \longrightarrow \{1, 3, 3\}$。 对 $3$ 施法:$\{1, 3, 3\} \longrightarrow \{1, 1, 2, 3\}$。

还有其他施法方式也有效,但它们都需要从金属 $5$ 或更高的单位开始。

附加样例 - 测试集 2

以下附加样例符合测试集 2 的限制。它不会针对你的提交进行运行。

样例输入 2

3
3 2 4
1 1 1
3 2 4
1 0 1
5 2 5
1 0 0 0 1

样例输出 2

Case #1: IMPOSSIBLE
Case #2: 5
Case #3: 10

在测试集 2 的第一个样例中,不可能从任何金属的单个单位开始,并多次应用 $A = 2$ 和 $B = 4$ 的法术,最后剩下金属 $1, 2$ 和 $3$ 各一个单位。

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.