玄神的字符串
题号:NC232578
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

玄神有一条珍藏多年的神奇字符串。因为某种原因,该字符串只由数字0和数字1组成。但是最近,他开始对字符串感到厌烦,所以他想将这个字符串删除。他可以任意进行以下三种操作,每种操作的次数不限:
1)选择字符串中的一个0和一个1,将他们删除,代价为a;
2)选择字符串中两个位置不同的0或者两个位置不同的1,将他们删除,代价为b;
3)将字符串中的一个0变成1或将字符串中的一个1变成0,代价为c。
聪明的你能不能帮帮玄神,求出将这条神奇字符串删除成空字符串(不含任何字符的字符串)的最小代价为多少?

输入描述:

第一行包括一个仅由数字0和数字1构成的字符串s,s的长度不超过50000,保证s的长度为偶数
第二行包括三个整数a、b、c,分别代表上述三种操作的代价。保证


输出描述:

输出包括一个整数,表示删除该字符串的最小代价
示例1

输入

复制
0110011001
3 4 5

输出

复制
15
示例2

输入

复制
0110011001
10 2 3

输出

复制
13