#ABC252F. 面包

面包

面包

题目描述

我们有一条长度为 LL 的面包,需要切开并分给 NN 个孩子。

ii 个孩子(1iN1 \le i \le N)想要一条长度为 AiA_i 的面包。

现在,高桥将重复以下操作,把面包切成孩子们需要的长度 A1,A2,,ANA_1, A_2, \ldots, A_N

选择一条长度为 kk 的面包,以及一个介于 11k1k-1(含端点)之间的整数 xx。将面包切成两条长度分别为 xxkxk-x 的面包。

无论 xx 取何值,该操作都会产生 kk 的费用。

每个孩子 ii 必须得到一条长度恰好为 AiA_i 的面包,但允许剩下一些没有分出去的面包。

求给所有孩子分发面包所需的最小费用。

输入格式

输入按以下格式从标准输入给出:

N L
A_1 A_2 … A_N

输出格式

打印给所有孩子分发面包所需的最小费用。

样例

5 7
1 2 1 2 1
16

高桥可以这样给孩子们切面包。

选择长度为 77 的面包和 x=3x = 3,切成两条长度分别为 3344 的面包,费用为 77

选择长度为 33 的面包和 x=1x = 1,切成两条长度分别为 1122 的面包,费用为 33。将前者给第 1 个孩子。

选择长度为 22 的面包和 x=1x = 1,切成两条长度为 11 的面包,费用为 22。将它们分别给第 3 个和第 5 个孩子。

选择长度为 44 的面包和 x=2x = 2,切成两条长度为 22 的面包,费用为 44。将它们分别给第 2 个和第 4 个孩子。

总费用为 7+3+2+4=167 + 3 + 2 + 4 = 16,这是最小的可能值。不会有多余的面包剩下。

3 1000000000000000
1000000000 1000000000 1000000000
1000005000000000

注意每个孩子 ii 必须得到一条长度恰好为 AiA_i 的面包。

数据范围

  • 2N2×1052 \le N \le 2 \times 10^5
  • 1Ai1091 \le A_i \le 10^9
  • A1+A2++ANL1015A_1 + A_2 + \cdots + A_N \le L \le 10^{15}
  • 输入中的所有值均为整数。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
2763
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签