#2029. [ABC252F] Bread

[ABC252F] Bread

题目描述

你有一根长度为 LL 的面包,现在你要将它分给 NN 个孩子,第 ii 个孩子想要一根长度为 AiA_i 的面包。

对于一根长度为 kk 的面包,你可以选择一个在 1k11 \sim k - 1 的整数 xx,将面包切分成长度为 xxkxk - x 的两部分,这将花费 kk 的代价。

ii 个孩子获得的面包长度必须为 AiA_i,但我们允许有面包剩余。

请你花费最少的代价,将这根面包分给孩子们。

输入格式

第一行输入 N N L L

第二行输入 A1 A_1 A2 A_2 \ldots AN A_N

输出格式

输出一个整数

5 7
1 2 1 2 1
16
3 1000000000000000
1000000000 1000000000 1000000000
1000005000000000

样例 1 解释

高桥可以按如下方法为孩子们切面包。

  • 选择长度为 77x=3x=3 的面包,将其切成长度为 3344 的面包,成本为 77
  • 选择长度为 33x=1x=1 的面包,将其切成长度为 1122 的面包,成本为 33 。把前者给 11 这个孩子。
  • 选择长度为 22x=1x=1 的面包,切成长度为 11 的两个面包,成本为 22 。把它们分给 33 个和 55 个孩子。
  • 选择长度为 44x=2x=2 的面包,切成长度为 22 的两个面包,成本为 44 。把它们送给 22 -nd和 44 -th的孩子。

这需要花费 7+3+2+4=167+3+2+4=16 ,这是可能的最低成本。不会有剩余的面包

提示

  • 2  N  2× 105 2\ \leq\ N\ \leq\ 2\times\ 10^5
  • 1 Ai 109 1\leq\ A_i\leq\ 10^9
  • A1+A2++AN L 1015 A_1+A_2+\cdots+A_N\leq\ L\leq\ 10^{15}