编程题
### 问题描述 小桥是一名安全工程师,他需要开发一个密码破解程序。这个程序需要破解一个由 $n$ 个二进制数字组成的字符串 $a_1, a_2, \ldots, a_n$。其中,每个二进制数字都可以是 0 或 1。 小桥决定对这个字符串 $a$ 进行一些操作,以便更快地破解密码。他有两种操作可供选择: - 将字符串 $a$ 中的某个子串翻转,需要花费 $x$ 个代币; - 将字符串 $a$ 中的某个子串中的 0 和 1 进行互换,需要花费 $y$ 个代币。 请你帮忙计算,最少需要花费多少代币,才能将字符串 $a$ 中的所有数字都变成 1。注意,你可以对一个子串进行多次操作。 ### 输入格式 第一行包含三个整数 $n, x$ 和 $y$,表示字符串长度以及翻转和取反操作的花费 ($1 \leq n \leq 10^5, 0 \leq x, y \leq 10^9$)。 第二行包含一个长度为 $n$,仅包含 0 和 1 的字符串 $a$。 ### 输出格式 输出一个整数,表示将字符串 $a$ 中所有的 0 都变成 1 所需的最少花费。如果字符串已经全部为 1,则输出 0。 ### 样例输入 ``` 6 3 1 011011 ``` ### 样例输出 ``` 2 ```
查看答案
赣ICP备20007335号-2