atcoder#ABC252F. [ABC252F] Bread

[ABC252F] Bread

配点 : 500500

問題文

長さ LL のパンが 11 つあり、これを NN 人の子供たちに切り分けます。 ii 番目 (1iN)(1\leq i\leq N) の子供は長さ AiA_i のパンを欲しがっています。

そこで、高橋君は次の操作を繰り返して、長さ A1,A2,,ANA_1,A_2,\ldots,A_N のパンを切り出して配ることにしました。

長さ kk のパン 11 つと 11 以上 k1k-1 以下の整数 xx を選ぶ。選んだパンを長さ xx のパンと 長さ kxk-x のパンに切り分ける。 このとき、xx の値によらずコストが kk かかる。

それぞれの子供に配るパンは長さがちょうど AiA_i のパン 11 つである必要がありますが、誰にも配られずに余るパンがいくつあっても構いません。

このとき、全ての子供たちにパンを配るために必要な最小のコストを求めてください。

制約

  • 2N2×1052 \leq N \leq 2\times 10^5
  • 1Ai1091\leq A_i\leq 10^9
  • A1+A2++ANL1015A_1+A_2+\cdots+A_N\leq L\leq 10^{15}
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN LL

A1A_1 A2A_2 \ldots ANA_N

出力

全ての子供たちにパンを配るために必要な最小のコストを出力せよ。

5 7
1 2 1 2 1
16

高橋君は次のようにしてパンを切り分けて配ることができます。

  • 長さ 77 のパンと整数 x=3x=3 を選ぶ。パンは長さ 33 のパンと長さ 44 のパンに切り分けられる。 (コスト 77 )
  • 長さ 33 のパンと整数 x=1x=1 を選ぶ。パンは長さ 11 のパンと長さ 22 のパンに切り分けられる。前者を 11 番目の子供に配る。 (コスト 33 )
  • 長さ 22 のパンと整数 x=1x=1 を選ぶ。パンは長さ 11 のパン 22 つに切り分けられる。これを 3,53,5 番目の子供に配る。 (コスト 22 )
  • 長さ 44 のパンと整数 x=2x=2 を選ぶ。パンは長さ 22 のパン 22 つに切り分けられる。これを 2,42,4 番目の子供に配る。 (コスト 44 )

このとき、コストは 7+3+2+4=167+3+2+4=16 かかり、これが最小です。 また、余るパンはありません。

3 1000000000000000
1000000000 1000000000 1000000000
1000005000000000

それぞれの子供に配るパンの長さはちょうど AiA_i でなければならない事に注意してください。