编程题
### 问题描述
在一个神奇的花园里,有 $N$ 棵奇异的树,它们的高度分别为 $H_1, H_2, \cdots, H_N$。这些树种植在不同的区域,形成了一条曲折的小路。小路两旁种植着各种各样的花朵和树木,构成了一个美丽的风景。
然而,这些树的高度并不相同,使得小路显得不够和谐。为了让小路更加美丽,你决定将所有树的高度都变成一样的。你可以进行三种操作:
- 选中一棵树,让它的高度加一,代价为 $A$。
- 选中一棵树,让它的高度减一,代价为 $B$。
- 选中两棵树 $i$ 和 $j$,让 $H_i$ 加一,$H_j$ 减一,代价为 $C$。
现在,请你计算出,将所有树的高度都变成相同的最小代价是多少。
### 输入格式
第一行包含四个整数 $N,A,B,C$($1\leq N \leq 10^5$,$1\leq A , B , C\leq 10^4$),分别表示树的个数和三种不同操作的代价。
第二行包含 $N$ 个整数 $H_1, H_2, \cdots, H_N$($1\leq H_i \leq 10^4$),表示每棵树的高度。
### 输出格式
输出一个整数,表示将所有树的高度都变成相同的最小代价。
### 样例输入
```
5 2 3 1
4 8 1 2 10
```
### 样例输出
```
8
```