#ABC119C. 合成竹
合成竹
合成竹
题目描述
你手上有 根竹子,长度分别为 (单位:厘米)。
你的目标是从这些竹子中选取若干根(也可以全部),得到长度分别为 的 根竹子。为此,你可以按任意顺序、任意次数使用下面三种魔法:
- 延展魔法: 消耗 MP(魔法值),选 根竹子,使其长度增加 。
- 缩短魔法: 消耗 MP,选 根长度在 以上的竹子,使其长度减少 。
- 合成魔法: 消耗 MP,选 根竹子连接成 根。新竹子的长度等于连接的两根竹子的长度之和。(此后,还可以对这根竹子继续使用魔法。)
要达成目标,最少需要多少 MP?
输入格式
输入按以下格式从标准输入给出:
输出格式
输出达成目标所需的最少 MP 量。
样例
5 100 90 80
98
40
30
21
80
23
要从长度分别为 的 根竹子得到长度分别为 的 根竹子。长度 的竹子一开始就有;长度 的竹子按下面方式使用魔法,共消耗 MP 即可得到,这是最优的。
- 对长度 的竹子使用延展魔法 次,得到长度 的竹子。(消耗 MP: )
- 对长度 的竹子使用合成魔法,得到长度 的竹子。(消耗 MP: )
- 对长度 的竹子使用缩短魔法 次,得到长度 的竹子。(消耗 MP: )
- 对步骤 2. 得到的长度 的竹子和步骤 3. 得到的长度 的竹子使用合成魔法,得到长度 的竹子。(消耗 MP: )
8 100 90 80
100
100
90
90
90
80
80
80
0
如果已经拥有所有想要长度的竹子,所需 MP 为 。由此可见,不一定必须使用所有竹子。
8 1000 800 100
300
333
400
444
500
555
600
666
243
数据范围
- 输入的所有值均为整数。
难度
普及
通过率
—
尝试
0
已通过
0
- ID
- 1672
- 类型
- 传统题
- Time Limit
- 2000ms
- Memory Limit
- 1024MiB
- 上传者