WAC585.舞蹈对决

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

舞蹈对决

你的团队即将在舞蹈大战中证明自己!

最初,你的团队有 EE 点能量和零点荣誉。

你的团队必须对抗一个由 NN 个舞蹈队组成的挑战阵容;在这个阵容中排在第 ii 个出场的队伍的舞蹈技巧值为 S_iS\_i

在每一轮战斗中,你都将按顺序面对下一个出场的对手团队,你可以采取以下行动之一:

  1. 舞蹈:你的团队将失去与对手团队的舞蹈技巧值相等的能量,该团队离开挑战阵容。你将因此获得一点荣誉值。如果对手团队的舞蹈技巧值大于或等于你目前的能量值,你就不能采取这个行动。
  2. 延迟:你找借口推迟比赛,而对手团队则回到挑战阵容的后面。你的能量和荣誉不会改变。
  3. 休战:你宣布与对手团队休战,该团队离开挑战阵容。你的能量和荣誉不会改变。
  4. 招募:你招募对手团队到你的团队中,该团队离开挑战阵容。你的团队获得与对手团队的舞蹈技巧值相等的能量点,同时你需要扣除一点荣誉。如果这会使你的荣誉值降到 00 以下,你就不能采取这个行动。

当挑战阵容中没有对手团队时,对决就结束了。

如果你做出最佳决策,对决结束后你可以获得的最大荣誉值是多少?

输入格式

第一行包含整数 TT,表示共有 TT 组测试数据。

每组数据包含两行,第一行包含两个整数 EENN,分别表示你的初始能量点和挑战团队数量。

第二行包含 NN 个整数 S_iS\_i,其中第 ii 个数表示第 ii 个出场的对手团队的舞蹈技巧值。

输出格式

每组数据输出一个结果,每个结果占一行。

结果表示为 Case #x: y,其中 xx 是组别编号(从 11 开始),yy 是战斗结束时可以获得的最大荣誉值。

数据范围

1T1001 \le T \le 100,

1E1061 \le E \le 10^6,

1S_i1061 \le S\_i \le 10^6,

1N10001 \le N \le 1000

样例解释

在样例#1中,只有一个对手团队。 你不能与他们跳舞,因为这会使你的能量下降到 00,你也不能招募他们因为这会使你的荣誉低于 00,延迟没有意义,所以唯一的选择是宣布休战,并以 00 荣誉值结束。

在样例#2中,一个最佳策略是:

  1. 延迟与第一个对手的对抗。 他们走到了阵容的后面。
  2. 与第二个对手对战。 你的能量降到 77,你的荣誉增加到 11
  3. 招募第三个对手。 你的能量增加到 2222,你的荣誉减少到 00
  4. 与第一个对手对抗。 你的能量降到 22,你的荣誉增加到 11

你以 11 点荣誉值结束。

样例

2
100 1
100
10 3
20 3 15
Case #1: 0
Case #2: 1

在线编程 IDE

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