atcoder#ABC119C. [ABC119C] Synthetic Kadomatsu

[ABC119C] Synthetic Kadomatsu

配点 : 300300

問題文

あなたは NN 本の竹を持っています。これらの長さはそれぞれ l1,l2,...,lNl_1, l_2, ..., l_N です (単位: センチメートル)。

あなたの目的は、これらの竹のうち何本か (全部でもよい) を使い、長さが A,B,CA, B, C であるような 33 本の竹を得ることです。そのために、以下の三種類の魔法を任意の順に何度でも使うことができます。

  • 延長魔法: 11 MP (マジックポイント) を消費し、11 本の竹を選んでその長さを 11 増やす。
  • 短縮魔法: 11 MP を消費し、11 本の長さ 22 以上の竹を選んでその長さを 11 減らす。
  • 合成魔法: 1010 MP を消費し、22 本の竹を選んで接続し 11 本の竹とする。この新たな竹の長さは接続した 22 本の竹の長さの合計に等しい。(以後、この竹に対してさらに魔法を使用することもできる。)

目的を達成するには、最小でいくつの MP が必要でしょうか?

制約

  • 3N83 \leq N \leq 8
  • 1C<B<A10001 \leq C < B < A \leq 1000
  • 1li10001 \leq l_i \leq 1000
  • 入力される値はすべて整数である。

入力

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

NN AA BB CC

l1l_1

l2l_2

::

lNl_N

出力

目的の達成に必要な MP の最小量を出力せよ。

5 100 90 80
98
40
30
21
80
23

長さ 98,40,30,21,8098, 40, 30, 21, 8055 本の竹から長さ 100,90,80100, 90, 8033 本の竹を得ようとしています。長さ 8080 の竹ははじめから持っており、長さ 100,90100, 90 の竹は次のように魔法を使うと合計 2323 MP を消費することで得られ、これが最適です。

  1. 長さ 9898 の竹に延長魔法を 22 回使い、長さ 100100 の竹を得る。(消費 MP: 22)
  2. 長さ 40,3040, 30 の竹に合成魔法を使い、長さ 7070 の竹を得る。(消費 MP: 1010)
  3. 長さ 2121 の竹に短縮魔法を 11 回使い、長さ 2020 の竹を得る。(消費 MP: 11)
  4. 手順 2. で得た長さ 7070 の竹と手順 3. で得た長さ 2020 の竹に合成魔法を使い、長さ 9090 の竹を得る。(消費 MP: 1010)
8 100 90 80
100
100
90
90
90
80
80
80
0

欲しい長さの竹をすでにすべて持っている場合、必要な MP は 00 です。このように、必ずしもすべての竹を使う必要はありません。

8 1000 800 100
300
333
400
444
500
555
600
666
243