atcoder#ABC119C. [ABC119C] Synthetic Kadomatsu
[ABC119C] Synthetic Kadomatsu
配点 : 点
問題文
あなたは 本の竹を持っています。これらの長さはそれぞれ です (単位: センチメートル)。
あなたの目的は、これらの竹のうち何本か (全部でもよい) を使い、長さが であるような 本の竹を得ることです。そのために、以下の三種類の魔法を任意の順に何度でも使うことができます。
- 延長魔法: MP (マジックポイント) を消費し、 本の竹を選んでその長さを 増やす。
- 短縮魔法: MP を消費し、 本の長さ 以上の竹を選んでその長さを 減らす。
- 合成魔法: MP を消費し、 本の竹を選んで接続し 本の竹とする。この新たな竹の長さは接続した 本の竹の長さの合計に等しい。(以後、この竹に対してさらに魔法を使用することもできる。)
目的を達成するには、最小でいくつの MP が必要でしょうか?
制約
- 入力される値はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
目的の達成に必要な MP の最小量を出力せよ。
5 100 90 80
98
40
30
21
80
23
長さ の 本の竹から長さ の 本の竹を得ようとしています。長さ の竹ははじめから持っており、長さ の竹は次のように魔法を使うと合計 MP を消費することで得られ、これが最適です。
- 長さ の竹に延長魔法を 回使い、長さ の竹を得る。(消費 MP: )
- 長さ の竹に合成魔法を使い、長さ の竹を得る。(消費 MP: )
- 長さ の竹に短縮魔法を 回使い、長さ の竹を得る。(消費 MP: )
- 手順 2. で得た長さ の竹と手順 3. で得た長さ の竹に合成魔法を使い、長さ の竹を得る。(消費 MP: )
8 100 90 80
100
100
90
90
90
80
80
80
0
欲しい長さの竹をすでにすべて持っている場合、必要な MP は です。このように、必ずしもすべての竹を使う必要はありません。
8 1000 800 100
300
333
400
444
500
555
600
666
243