CF1111C Creative Snap
题目描述
灭霸要摧毁复仇者们的基地!
我们可以将复仇者的基地看成一个序列,每个位置都有可能有多个复仇者;但是每个复仇者只能占据一个位置。
他们基地的长度刚好是$2$的整数幂,灭霸想要用最少的能量摧毁它们。他在摧毁过程中,可以选择:
- 如果这段基地长度$\ge 2$,他可以将其分为相等长度的两半。
- 烧掉这段基地。如果这段基地中没有复仇者,他需要消耗$A$的能量;如果有,则需要消耗$B*x*l$的能量。其中$l$是这段基地长度,$x$是这段中的复仇者数量。
输出一个整数,表示他摧毁全部基地需要的最少能量。
接下来一行$k$个整数,$a_i$表示第$i$个复仇者所在的位置
输入格式
第一行包含四个整数 $n$、$k$、$A$ 和 $B$($1 \le n \le 30$、$1 \le k \le 10^5$、$1 \le A, B \le 10^4$),其中 $2^n$ 是基数长度,$k$ 是复仇者的数量,$A$ 和 $B$ 是问题中解释的常数。
第二行包含 $k$ 个整数 $a_1, a_2, a_3, \dots, a_k$($1 \le a_i \le 2^n$),其中 $a_i$ 代表复仇者在基地中的位置。
输出格式
一个整数,表示摧毁基地所需要的最少能量。
说明/提示
### 样例解释
对于样例1,直接烧区间$[1,4]$需要能量为$4*2*2=16$。
但是,如果将其分为$4$段,分别烧掉,所需能量只有$2+1+2+1=6$。
可以证明没有更优的方案,所以输出`6`。
对于全部数据:
$1\le n \le 30$
$1\le k \le 10^5$
$1\le A,B \le 10^4$
$1\le a_i \le 2^n$