CF1875A.Jellyfish and Undertale

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Jellyfish and Undertale

题目描述

Flowey 在 Snowdin 安放了一颗炸弹!

这颗炸弹有一个初始为 bb 的倒计时定时器。每过一秒,定时器会减少 11。当定时器归零时,炸弹就会爆炸!为了让 Snowdin 的居民有足够的时间撤离,你需要尽可能延迟炸弹爆炸的时间。

你有 nn 个工具。每个工具最多只能使用一次。如果你使用第 ii 个工具,定时器会增加 xix_i。然而,由于一个 bug,如果定时器被调整到大于 aa 的整数,定时器会被设置为 aa

更具体地说,每一秒会按以下顺序发生如下事件:

  1. 你可以选择一些(也可以一个都不选)之前未用过的工具。如果你选择了第 ii 个工具,并且当前炸弹定时器为 cc,则定时器会变为 min(c+xi,a)\min(c + x_i, a)
  2. 定时器减少 11
  3. 如果定时器变为 00,炸弹爆炸。

Jellyfish 现在想知道,如果你最优地使用工具,炸弹最多能在多少秒后爆炸。

输入格式

每个测试包含多组测试用例。第一行包含测试用例数 tt1t20001 \leq t \leq 2000)。接下来是每组测试用例的描述。

每组测试用例的第一行包含三个整数 aabbnn1ba1091 \leq b \leq a \leq 10^91n1001 \leq n \leq 100)——炸弹定时器的最大值、初始值以及工具数量。

每组测试用例的第二行包含 nn 个整数 x1,x2,,xnx_1, x_2, \dots, x_n1xi1091 \leq x_i \leq 10^9)——使用第 ii 个工具可以让定时器增加的数值。

注意,所有测试用例中 nn 的总和没有限制。

输出格式

对于每组测试用例,输出一个整数,表示炸弹最多能在多少秒后爆炸。

说明/提示

cc 表示炸弹定时器的当前值。在第一个测试用例中:

  • 11 秒:选择工具 1122,此时 c=5c=5;定时器减 11c=4c=4
  • 22 秒:定时器减 11c=3c=3
  • 33 秒:定时器减 11c=2c=2
  • 44 秒:定时器减 11c=1c=1
  • 55 秒:选择工具 33c=5c=5;定时器减 11c=4c=4
  • 66 秒:定时器减 11c=3c=3
  • 77 秒:定时器减 11c=2c=2
  • 88 秒:定时器减 11c=1c=1
  • 99 秒:定时器减 11c=0c=0。炸弹爆炸。

可以证明,没有任何方法能让炸弹在 99 秒后才爆炸。

由 ChatGPT 4.1 翻译

样例

2
5 3 3
1 1 7
7 1 5
1 2 5 6 8
9
21

在线编程 IDE

建议全屏模式获得最佳体验