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$