Codeforces Round 684 (Div. 2) |
---|
Закончено |
Вам даны четыре целых числа $$$n$$$, $$$c_0$$$, $$$c_1$$$ и $$$h$$$ и бинарная строка $$$s$$$ длины $$$n$$$.
Бинарная строка — это строка, состоящая из символов $$$0$$$ и $$$1$$$.
Вы можете поменять любой символ строки $$$s$$$ (но строка должна остаться бинарной после изменения). Вы должны заплатить $$$h$$$ монет за каждое такое изменение.
Вы хотите купить строку после нескольких изменений (возможно, нуля). Чтобы купить строку, вы должны купить все ее символы. Чтобы купить символ $$$0$$$, вы должны заплатить $$$c_0$$$ монет, чтобы купить символ $$$1$$$, вы должны заплатить $$$c_1$$$ монет.
Найдите минимальное количество монет, которое нужно, чтобы купить строку.
В первой строке находится единственное целое число $$$t$$$ ($$$1 \leq t \leq 10$$$) — количество наборов входных данных. Следующие $$$2t$$$ строк содержат описания наборов входных данных.
Первая строка описания каждого набора входных данных содержит четыре целых числа $$$n$$$, $$$c_{0}$$$, $$$c_{1}$$$, $$$h$$$ ($$$1 \leq n, c_{0}, c_{1}, h \leq 1000$$$).
Вторая строка описания каждого набора входных данных содержит бинарную строку $$$s$$$ длины $$$n$$$.
Для каждого набора входных данных выведите единственное целое число — минимальное количество монет, нужное, чтобы купить строку.
6 3 1 1 1 100 5 10 100 1 01010 5 10 1 1 11111 5 1 10 1 11111 12 2 1 10 101110110101 2 100 1 10 00
3 52 5 10 16 22
В первом наборе входных данных вы можете купить все символы и заплатить $$$3$$$ монеты, потому что каждый из символов $$$0$$$ и $$$1$$$ стоит $$$1$$$ монету.
Во втором наборе входных данных вы можете сначала поменять $$$2$$$-й и $$$4$$$-й символы строки с $$$1$$$ на $$$0$$$ и заплатить $$$2$$$ монеты за это. Ваша строка станет равной $$$00000$$$. После этого вы можете купить строку и заплатить $$$5 \cdot 10 = 50$$$ монет за это. Общее число потраченных монет будет $$$2 + 50 = 52$$$.
Название |
---|