QOJ.ac

QOJ

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

#5845. 栅栏

Statistiques

我们正在考虑建造一道非常长的栅栏。我们已经选好了建造地点,现在只需要收集材料。

从当地的五金店,我们可以购买数量不限的木板,每种木板都有多种不同的长度。为了避免浪费,我们希望确保这些木板的总长度与我们要建造的栅栏长度完全相等。

给定栅栏的长度以及我们可以使用的木板长度,为了得到恰好所需的长度,我们需要购买的最少木板数量是多少?

注意: 栅栏将会非常长!

输入格式

输入文件的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。

每个测试用例包含两行。第一行包含用空格分隔的整数 $L$ 和 $N$。它们分别代表栅栏的总长度和可以购买的木板长度种类数。第二行包含 $N$ 个用空格分隔的整数 $B_1, B_2, \dots, B_N$,代表所有可能的木板长度。

输出格式

对于每个测试用例,输出一行 "Case #x: M",其中 $x$ 是测试用例编号(从 1 开始),$M$ 的含义如下:

  • 如果可以通过购买一块或多块木板使得它们的总长度恰好等于 $L$,则 $M$ 应为实现此目标所需的最少木板数量。
  • 否则,$M$ 应为字符串 "IMPOSSIBLE"。

数据范围

$1 \le T \le 50$

$10^{10} \le L \le 10^{18}$

$1 \le N \le 100$

小数据(测试集 1 - 可见;7 分)

$1 \le B_i \le 100$

大数据(测试集 2 - 隐藏;22 分)

$1 \le B_i \le 100000$

样例

输入格式 1

2
10000000001 3
23 51 100
10000000001 3
100 52 22

输出格式 1

Case #1: 100000004
Case #2: IMPOSSIBLE

说明

在第一个样例中,最优策略是使用 2 块长度为 23 的木板,5 块长度为 51 的木板,以及 99999997 块长度为 100 的木板。当然,你也可以只使用 100000001 块长度为 100 的木板来得到一个大于 $L$ 的总长度,但这是不允许的。

在第二个样例中,只能得到偶数长度。

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.