AT_abc119_c.[ABC119C] Synthetic Kadomatsu
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你有 N 根竹子。这些竹子的长度分别为 l1, l2, ..., lN(单位:厘米)。
你的目标是使用这些竹子中的若干根(也可以全部使用),得到三根长度分别为 A, B, C 的竹子。为此,你可以任意顺序、任意次数地使用以下三种魔法:
- 延长魔法:消耗 1 点 MP(魔法点数),选择一根竹子,将其长度增加 1。
- 缩短魔法:消耗 1 点 MP,选择一根长度至少为 2 的竹子,将其长度减少 1。
- 合成魔法:消耗 10 点 MP,选择两根竹子,将它们连接成一根新竹子。新竹子的长度等于两根竹子的长度之和。(之后你可以继续对这根新竹子使用魔法。)
请问,最少需要多少 MP 才能达成目标?
输入格式
输入以如下格式从标准输入读入。
N A B C l1 l2 ⋯ lN
输出格式
输出达成目标所需的最小 MP。
输入输出样例
输入#1
5 100 90 80 98 40 30 21 80
输出#1
23
输入#2
8 100 90 80 100 100 90 90 90 80 80 80
输出#2
0
输入#3
8 1000 800 100 300 333 400 444 500 555 600 666
输出#3
243
说明/提示
限制条件
- 3≤N≤8
- 1≤C<B<A≤1000
- 1≤li≤1000
- 输入的所有值均为整数。
样例解释 1
你有 5 根长度为 98, 40, 30, 21, 80 的竹子,目标是得到长度为 100, 90, 80 的三根竹子。你已经拥有一根长度为 80 的竹子,可以通过如下方式使用魔法,以总共消耗 23 MP 达到目标,这也是最优解:
- 对长度为 98 的竹子使用延长魔法 2 次,得到长度为 100 的竹子。(消耗 MP:2)
- 对长度为 40 和 30 的竹子使用合成魔法,得到长度为 70 的竹子。(消耗 MP:10)
- 对长度为 21 的竹子使用缩短魔法 1 次,得到长度为 20 的竹子。(消耗 MP:1)
- 将步骤 2 得到的长度为 70 的竹子与步骤 3 得到的长度为 20 的竹子使用合成魔法,得到长度为 90 的竹子。(消耗 MP:10)
样例解释 2
如果你已经拥有所有目标长度的竹子,则所需 MP 为 0。注意,并不一定要使用所有的竹子。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?