题目描述
给定一个排列 p=(p1,…,pN),pi 是 1,…,N 的元素。你可以按照以下两种操作的顺序任意重复地进行操作:
- 支付代价 A。选择整数 l 和 r (1≤l<r≤N),将 (pl,…,pr) 向左移动一位。也就是用 pl+1,pl+2,…,pr,pl 替换 pl,pl+1,…,pr−1,pr。
- 支付代价 B。选择整数 l 和 r (1≤l<r≤N),将 (pl,…,pr) 向右移动一位。也就是用 pr,pl,…,pr−2,pr−1 替换 pl,pl+1,…,pr−1,pr。
求将 p 按升序排序所需的最小总代价。
约束条件
- 输入中的所有值都是整数。
- 1≤N≤5000
- 1≤A,B≤109
- (p1,…,pN) 是 1,…,N 的排列。
输入
输入以以下格式从标准输入给出:
N A B
p1 ⋯ pN
输出
输出将 p 按升序排序所需的最小总代价。
示例输入1
3 20 30
3 1 2
示例输出1
20
将 (p1,p2,p3) 向左移动一位得到 p=(1,2,3)。
示例输入2
4 20 30
4 2 3 1
示例输出2
50
一种可能的操作序列如下:
- 将 (p1,p2,p3,p4) 向左移动一位,得到 p=(2,3,1,4)。
- 将 (p1,p2,p3) 向右移动一位,得到 p=(1,2,3,4)。
此时,总代价为 20+30=50。
示例输入3
1 10 10
1
示例输出3
0
示例输入4
4 1000000000 1000000000
4 3 2 1
示例输出4
3000000000
示例输入5
9 40 50
5 3 4 7 6 1 2 9 8
示例输出5
220