#585. Bread
Bread
题面描述
你有一根长度为 的面包,现在你要将它分给 个孩子,第 个孩子想要一根长度为 的面包。
对于一根长度为 的面包,你可以选择一个在 的整数 ,将面包切分成长度为 和 的两部分,这将花费 的代价。
第 个孩子获得的面包长度必须为 ,但我们允许有面包剩余。
请你花费最少的代价,将这根面包分给孩子们。
输入格式
第一行两个整数 。
第二行 个整数 。
输出格式
输出答案。
数据范围
你有一根长度为 L 的面包,现在你要将它分给 N 个孩子,第 i 个孩子想要一根长度为 Ai 的面包。
对于一根长度为 k 的面包,你可以选择一个在 1∼k−1 的整数 x,将面包切分成长度为 x 和 k−x 的两部分,这将花费 x 的代价。
第 i 个孩子获得的面包长度必须为 Ai,但我们允许有面包剩余。
请你花费最少的代价,将这根面包分给孩子们。
第一行两个整数 N,L。
第二行 N 个整数 A1,A2,…,AN。
输出答案。
2≤N≤2×105
1≤Ai≤109
1≤∑Ai≤L≤1015
注册一个 CZOJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。