已结束 GESP排位赛#10
← 上一题 下一题 →

A3092 | 分面包

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

时间限制:1000ms

内存限制:128MB


有一条长度为 $L$ 的面包,现在要将其切割并分给 $N$ 个孩子。
第 $i$ 个孩子 $(1 \leq i \leq N)$ 想要长度为 $A_i$ 的面包。

重复以下操作,将面包切割成长度为 $A_1, A_2, \ldots, A_N$ 的面包分给孩子们。

- 选择一条长度为 $k$ 的面包和一个介于 $1$ 和 $k-1$ 之间(含)的整数 $x$。将面包切割成长度为 $x$ 和 $k-x$ 的两条面包。
- 此操作的花费为 $k$,与 $x$ 的值无关。

每个孩子 $i$ 必须得到一条长度正好为 $A_i$ 的面包,但允许留下未分配的面包。

计算将面包分配给所有孩子所需的最小花费。

$\large{数据范围}$

- $2 \leq N \leq 2\times 10^5$
- $1\leq A_i\leq 10^9$
- $A_1+A_2+\cdots+A_N\leq L\leq 10^{15}$
- 所有输入数值均为整数。

输入格式

对于每个测试文件输入格式如下:

$\tt{N\ L}$

$\tt{A_1\ A_2\ \ldots\ A_N}$

输出格式

输出向所有孩子分发面包所需的最低花费。

输入输出样例

输入 #1
5 7
1 2 1 2 1
输出 #1
16
输入 #2
3 1000000000000000
1000000000 1000000000 1000000000
输出 #2
1000005000000000
C++ 编辑器
输入
输出