rt。
描述
你有 n 根筷子,长度分别为 ?1,?2,?3...??,为了得到长度分别为 A,B,C 的三根筷子,现在你要施展若干次魔法,问消耗的最小魔法值是多少?
你可以用下面三种魔法改变筷子的长度:
1.消耗1魔法点,选一根竹子,让它的长度增加1
2.消耗1魔法点,选一根长度至少为2的竹子,让它的长度减一
3.消耗10魔法点,选两根竹子,将它们合并,合并之后的竹子是合并前两根竹子长度的总和。
输入
第一行有四个整数 N,A,B,C(中3≤N≤8,1≤C<B<A≤1000)。
接下来有N行,每行一个整数,分别表示 N 个筷子的长度 ??(1≤??≤1000)。
输出
输出消耗的最小魔法值。
输入样例 1
5 100 90 80
98
40
30
21
80
输出样例 1
23
样例输入
8 1000 800 100
300
333
400
444
500
555
600
666
样例输出
243
纯蒟蒻,看得出来是状态拆分店dp,但不懂每个情况情况怎么dp。并且怎么考虑合成顺序。
求助!