#4315. Bread
0
Bread
Bread
题目描述
我们有一条长度为 的面包,需要把它切分并分配给 个孩子。
第 个孩子 想要长度为 的面包片。
现在,高桥将重复下面的操作,把面包切成供孩子们的长度 。
选择一条长度为 $k$ 的面包和一个介于 $1$ 到 $k-1$(含)之间的整数 $x$。把这条面包切成长度为 $x$ 和 $k-x$ 的两条面包。每个孩子 $i$ 必须得到长度恰好为 $A_i$ 的面包片,但允许有些面包片不分发出去。 求把面包分给所有孩子所需的最小代价。
无论 $x$ 的值如何,这一操作的代价都是 $k$。
输入格式
输入从标准输入按以下格式给出:
输出格式
输出把面包分给所有孩子所需的最小代价。
5 7
1 2 1 2 1
16
3 1000000000000000
1000000000 1000000000 1000000000
1000005000000000
提示
输入中的所有数值均为整数。高桥可以按如下方式为孩子们切分面包。
选择长度为 的面包并取 ,将其切成长度为 和 的两块,代价为 。 选择长度为 的面包并取 ,将其切成长度为 和 ,代价为 。把前者给第 个孩子。 选择长度为 的面包并取 ,将其切成两块长度为 的面包,代价为 。把它们分别给第 和第 个孩子。 选择长度为 的面包并取 ,将其切成两块长度为 的面包,代价为 。把它们分别给第 和第 个孩子。
这样产生的总代价为 ,这是可能的最小值。
不会有多余的面包片。
注意每个孩子 必须得到长度恰好为 的面包片。
标签: AtCoder|abc252F
来源
AtCoder|abc252F