编程题
### 问题描述
小蓝是一位勇敢的冒险家,他听说在遥远的神秘岛屿上隐藏着一处传说中的宝藏。这个宝藏被一位古老巫师所保护,只有真正勇敢的冒险家才能找到它。
为了寻找宝藏,小蓝需要通过一连串的难题。巫师给了他一个由小写英文字母组成的字符串 $s$,每个字母都有一个特定的权值 $w_i$。小蓝需要按照一定规则依次处理字符串中的字符,直到字符串为空。
处理规则如下:小蓝从字符串的最左端开始,每次选择当前字符的权值是否为当前全局最小值。如果是最小值,他将其移除并记下代价 $k$;如果不是最小值,他将该字符放到字符串的最右端,并记下代价 $m$。小蓝会一直按照这个规则处理字符串,直到字符串为空。
现在,请你帮助小蓝计算最终的最小代价。
### 输入格式
第一行输入三个整数 $n,m,k$($1\le n,m,k\le 10^5$),分别表示字符串长度、字符放置到右端的代价和字符移除的代价。
第二行输入 $26$ 个整数 $w_i$($1 \le w_i \le 1000$),表示每个小写字母 `a` 到 `z` 的权值。
第三行输入一个长度为 $n$ 由小写英文字母组成的字符串 $s$。
### 输出格式
输出一行,表示最终的最小代价。
### 样例输入
```
4 1 1
3 3 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
abcd
```
### 样例输出
```
6
```