[ABC119C] Synthetic Kadomatsu
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
AT_abc119_c [ABC119C] Synthetic Kadomatsu
题目描述
你有 根竹子。这些竹子的长度分别为 (单位:厘米)。
你的目标是使用这些竹子中的若干根(也可以全部使用),得到三根长度分别为 的竹子。为此,你可以任意顺序、任意次数地使用以下三种魔法:
- 延长魔法:消耗 点 MP(魔法点数),选择一根竹子,将其长度增加 。
- 缩短魔法:消耗 点 MP,选择一根长度至少为 的竹子,将其长度减少 。
- 合成魔法:消耗 点 MP,选择两根竹子,将它们连接成一根新竹子。新竹子的长度等于两根竹子的长度之和。(之后你可以继续对这根新竹子使用魔法。)
请问,最少需要多少 MP 才能达成目标?
输入格式
输入以如下格式从标准输入读入。
输出格式
输出达成目标所需的最小 MP。
样例 1
输入
5 100 90 80
98
40
30
21
80
输出
23
样例 2
输入
8 100 90 80
100
100
90
90
90
80
80
80
输出
0
样例 3
输入
8 1000 800 100
300
333
400
444
500
555
600
666
输出
243
说明/提示
限制条件
- 输入的所有值均为整数。
样例解释 1
你有 根长度为 的竹子,目标是得到长度为 的三根竹子。你已经拥有一根长度为 的竹子,可以通过如下方式使用魔法,以总共消耗 MP 达到目标,这也是最优解:
- 对长度为 的竹子使用延长魔法 次,得到长度为 的竹子。(消耗 MP:)
- 对长度为 和 的竹子使用合成魔法,得到长度为 的竹子。(消耗 MP:)
- 对长度为 的竹子使用缩短魔法 次,得到长度为 的竹子。(消耗 MP:)
- 将步骤 2 得到的长度为 的竹子与步骤 3 得到的长度为 的竹子使用合成魔法,得到长度为 的竹子。(消耗 MP:)
样例解释 2
如果你已经拥有所有目标长度的竹子,则所需 MP 为 。注意,并不一定要使用所有的竹子。
由 ChatGPT 4.1 翻译